1. PREPARE

Data sources such as digital learning environments and administrative data systems, as well as data produced by social media websites and the mass digitization of academic and practitioner publications, hold enormous potential to address a range of pressing problems in education, but collecting and analyzing text-based data also presents unique challenges. This week, our case study is guided by my colleague Josh Rosenberg’s recent article, Advancing new methods for understanding public sentiment about educational reforms: The case of Twitter and the Next Generation Science Standards.

We will focus on conducting a very simplistic “replication study” by comparing the sentiment of tweets about the Next Generation Science Standards (NGSS) and Common Core State Standards (CCSS) in order to better understand public reaction to these two curriculum reform efforts. Specifically, our Unit 3 case study will cover the following topics:

  1. Prepare: We’ll take a quick look at Dr. Rosenberg’s study, load packages we’ll need for analysis, and learn how to use Twitter’s API to retrieve data for those that created a Twitter Developer account.
  2. Wrangle: We focus on basic text mining processes such as text tokenization and stop word removal. Specifically, we will learn how to “tidy text” so we can perform some basic analyses such as retrieving word counts and term frequencies.
  3. Explore: In order to see what insight our data provides into answering our research questions, we will calculate some basic simple summary statistics from our tidied text and use data visualization to highlight some of these insights.
  4. Model: We learn about sentiment lexicons in our third lab and introduce the {vader} package to model the sentiment of tweets about the NGSS and CCSS state standards in order to better understand public reaction to these two curriculum reform efforts.
    Communicate:

1a. Review the Literature

The Unit 3 Case Study: Public Sentiment and the State Standards is guided by a recent publication by (Rosenberg et al., 2021) Understanding Public Sentiment About Educational Reforms: The Next Generation Science Standards on Twitter. This study in turn builds on upon previous work by Wang & Fikis (2017) examining public opinion on the Common Core State Standards (CCSS) on Twitter. For Module 1, we will focus on analyzing tweets about the Next Generation Science Standards (NGSS) and Common Core State Standards (CCSS) in order to better understand key words and phrases that emerge, as well as public sentiment towards these two curriculum reform efforts.

Full Paper (AERA Open)

Abstract

System-wide educational reforms are difficult to implement in the United States, but despite the difficulties, reforms can be successful, particularly when they are associated with broad public support. This study reports on the nature of the public sentiment expressed about a nationwide science education reform effort, the Next Generation Science Standards (NGSS). Through the use of data science techniques to measure the sentiment of posts on Twitter about the NGSS (N = 565,283), we found that public sentiment about the NGSS is positive, with only 11 negative posts for every 100 positive posts. In contrast to findings from past research and public opinion polling on the Common Core State Standards, sentiment about the NGSS has become more positive over time—and was especially positive for teachers. We discuss what this positive sentiment may indicate about the success of the NGSS in light of opposition to the Common Core State Standards.

Data Sources

Similar to data we’ll be using for this case study, Rosenberg et al. used publicly accessible data from Twitter collected using the Full-Archive Twitter API and the {rtweet} package in R. Specifically, the authors accessed tweets and user information from the hashtag-based #NGSSchat online community, all tweets that included any of the following phrases, with “/” indicating an additional phrase featuring the respective plural form: “ngss,” “next generation science standard/s,” “next gen science standard/s.”

Data used in this case was pulled using an Academic Research developer account and the {academictwitter} package, which uses the Twitter API v2 endpoints and allows researchers to access the full twitter archive, unlike the standard developer account. Data includes all tweets from January through May of 2020 and included the following terms: #ccss, common core, #ngsschat, ngss. Below is an example of the code used to retrieve data for this lab. This code is set not to execute and will not run, but it does illustrate the search query used, variables selected, and time frame. For those that created a standard developer account, we will learn how to use your developer account later in this section to retrieve data from Twitter.

library(academictwitteR)
library(tidyverse)

ccss_tweets_2021 <-
  get_all_tweets('(#commoncore OR "common core") -is:retweet lang:en',
                 "2021-01-01T00:00:00Z",
                 "2021-05-31T00:00:00Z",
                 bearer_token,
                 data_path = "ccss-data/",
                 bind_tweets = FALSE)

ccss_tweets <- bind_tweet_jsons(data_path = "ccss-data/") %>%
  select(text,
         created_at,
         author_id,
         id,
         conversation_id,
         source,
         possibly_sensitive,
         in_reply_to_user_id)


write_csv(ccss_tweets, here("data", "ccss-tweets.csv"))

Analysis

The authors determined Tweet sentiment using the Java version of SentiStrength to assign tweets to two 5-point scales of sentiment, one for positivity and one for negativity, because SentiStrength is a validated measure for sentiment in short informal texts (Thelwall et al., 2011). In addition, they used this tool because Wang and Fikis (2019) used it to explore the sentiment of CCSS-related posts. We’ll be using the AFINN sentiment lexicon which also assigns words in a tweet to two 5-point scales, in addition to exploring some other sentiment lexicons to see if they produce similar results. We will use a similar approach to label tweets as positive, negative, or neutral using the {Vader} package which greatly simplifies this process.

The authors also used the lme4 package in R to run a mixed effects model to determine if sentiment changes over time and differs between teachers and non-teachers. We won’t try to replicate in this study, but we will take a look at some of their findings from this model in below.

Summary of Key Findings

  1. Contrasting with sentiment about CSSS, sentiment about the NGSS science education reform effort is overwhelmingly positive, with approximately 9 positive tweets for every negative tweet.
  2. Teachers were more positive than non-teachers, and sentiment became substantially more positive over the ten years of NGSS-related posts.
  3. Differences between the context of the tweets were small, but those that did not include the #NGSSchat hashtag became more positive over time than those posts that did not include the hashtag.
  4. Individuals posted more tweets during #NGSSchat chats, the sentiment of their posts was more positive, suggesting that while the context of individual tweets has a small effect (with posts not including the hashtag becoming more positive over time), the effect upon individuals of being involved in the #NGSSchat was positive.

Finally, you can watch Dr. Rosenberg provide a quick 3-minute overview of this work at <https://stanford.app.box.com/s/i5ixkj2b8dyy8q5j9o5ww4nafznb497x>

1b. Define Questions

One overarching question that Silge and Robinson (2018) identify as a central question to text mining and natural language processing, and that we’ll explore later in this case study, is the question:

How do we to quantify what a document or collection of documents is about?

The questions guiding the Rosenberg et al. study attempt to quantify public sentiment around the NGSS and how that sentiment changes over time. Specifically, they asked:

  1. What is the public sentiment expressed toward the NGSS?
  2. How does sentiment for teachers differ from non-teachers?
  3. How do tweets posted to #NGSSchat differ from those without the hashtag?
  4. How does participation in #NGSSchat relate to the public sentiment individuals express?
  5. How does public sentiment vary over time?

For our text mining case study, we’ll use approaches similar to those used by the authors cited above to better understand public discourse surrounding these standards, particularly as they relate to STEM education. We will also try to guage public sentiment around the NGSS, by comparing how much more positive or negative NGSS tweets are relative to CSSS tweets. Specifically, in this case study we’ll attempt to answer the following questions:

  1. What are the most frequent words or phrases used in reference to tweets about the CCSS and NGSS?
  2. How does sentiment for NGSS compare to sentiment for CCSS?

1c. Load Libraries

tidytext 📦

As we’ll learn first hand in this module, using tidy data principles can also make many text mining tasks easier, more effective, and consistent with tools already in wide use. The {tidytext} package helps to convert text into data frames of individual words, making it easy to to manipulate, summarize, and visualize text using using familiar functions form the {tidyverse} collection of packages.

Let’s go ahead and load the {tidytext} package:

library(tidytext)

For a more comprehensive introduction to the tidytext package, I cannot recommend enough the free and excellent online book, Text Mining with R: A Tidy Approach (Silge & Robinson, 2017). If you’re interested in pursuing text analysis using R post Summer Workshop, this will be a go to reference.

The vader Package 📦


The {vader} package is for the Valence Aware Dictionary for sEntiment Reasoning (VADER), a rule-based model for general sentiment analysis of social media text and specifically attuned to measuring sentiment in microblog-like contexts.

To learn more about the {vader} package and its development, take a look at the article by Hutto and Gilbert (2014), VADER: A Parsimonious Rule-based Model forSentiment Analysis of Social Media Text.

Let’s go ahead and load the VADER library:

library(vader)

Note: The {vader} package can take quite some time to run on a large datasets like the one we’ll be working with, so in our Model section we will examine just a small(ish) subset of tweets.

rtweet 📦 (Optional)

The {rtweet} package provides users a range of functions designed to extract data from Twitter’s REST and streaming APIs and has three main goals:

  1. Formulate and send requests to Twitter’s REST and stream APIs.

  2. Retrieve and iterate over returned data.

  3. Wrangling data into tidy structures.

For those that created a Twitter Developer account, load the {rtweet} package that we’ll be using to accomplish all three of the goals listed above:

library(rtweet)

Other Packages

Finally, there are a few other packages we’ll need to get started. The first two should look familiar while third {wordcloud2} package is handy little package for creating interactive word clouds.

library(tidyverse)
## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.1 ──
## ✓ ggplot2 3.3.5     ✓ purrr   0.3.4
## ✓ tibble  3.1.4     ✓ dplyr   1.0.7
## ✓ tidyr   1.1.3     ✓ stringr 1.4.0
## ✓ readr   2.0.1     ✓ forcats 0.5.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## x dplyr::filter()  masks stats::filter()
## x purrr::flatten() masks rtweet::flatten()
## x dplyr::lag()     masks stats::lag()
library(here)
## here() starts at /cloud/project
library(wordcloud2)

2. WRANGLE

The importance of data wrangling, particularly when working with text, is difficult to overstate. Just as a refresher, wrangling involves the initial steps of going from raw data to a dataset that can be explored and modeled (Krumm et al., 2018). This case study will place a heavy emphasis on preparing text for analysis and in particular we’ll learn how to:

  1. Import Tweets. First we revisit the familiar read_csv() function for reading in our CCSS and NGSS tweets into R. For those of you who created a Twitter Developer Account, we’ll also demonstrate the use of the {rtweet} package for downloading data directly from Twitter.
  2. Restructure Data. We focus on removing extraneous data using the select() and filter() functions from {dplyr}, and revisit functions from the Tidy Your Data Primer for merging data frames.
  3. Tidy Text. Finally, we introduce the {tidytext} package to “tidy” and tokenize our tweets in order to create our data frame for analysis. We also introduce a new join function to remove “stop words” that don’t add much value to our analysis.

2a. Part 1: Import Tweets from API (Optional)

This section is optional and for those those setup a Twitter Developer Account and App. The Import Tweets section introduces the following functions from the {rtweet} package for reading Twitter data into R:

  • create_token() Sends request to generate authorization tokens for use of the Twitter API.
  • search_tweets() Pulls up to 18,000 tweets from the last 6-9 days matching provided search terms. 
  • search_tweets2() Returns data from multiple search queries. 
  • get_timelines() Returns up to 3,200 tweets of one or more specified Twitter users.

Authorization methods

Users can create their personal Twitter token in two different ways. THe recommend method is outlined below.

  • Navigate to developer.twitter.com/en/apps and select your Twitter app
  • Click the tab labeled Keys and tokens to retrieve your keys.
  • Locate the Consumer API keys (aka “API Secret”).

  • Scroll down to Access token & access token secret and click Create

  • Copy and paste the four keys (along with the name of your app) into an R script file and pass them along to create_token(). Note, these keys are named secret for a reason. I recommend setting up your token in a separate R script than the one that you will eventually share.
## store api keys (these are fake example values; replace with your own keys)
app_name <- "Text Mining in Education"
api_key <- "afYS4vbIlPAj096E60c4W1fiK"
api_secret_key <- "bI91kqnqFoNCrZFbsjAWHD4gJ91LQAhdCJXCj3yscfuULtNkuu"
access_token <- "9551451262-wK2EmA942kxZYIwa5LMKZoQA4Xc2uyIiEwu2YXL"
access_token_secret <- "9vpiSGKg1fIPQtxc5d5ESiFlZQpfbknEN1f1m2xe5byw7"

## authenticate via web browser
token <- create_token(
  app = app_name,
  consumer_key = api_key,
  consumer_secret = api_secret_key,
  access_token = access_token,
  access_secret = access_token_secret)

Authorization in future R sessions

  • The create_token() function should automatically save your token as an environment variable for you. So next time you start an R session [on the same machine], rtweet should automatically find your token.
  • To make sure it works, restart your R session, run the following code, and again check to make sure the app name and api_key match.
## check to see if the token is loaded
get_token()
## <Token>
## <oauth_endpoint>
##  request:   https://api.twitter.com/oauth/request_token
##  authorize: https://api.twitter.com/oauth/authenticate
##  access:    https://api.twitter.com/oauth/access_token
## <oauth_app> LASER Labs
##   key:    I0M2APeuHjDPqSaussmcHYQDC
##   secret: <hidden>
## <credentials> oauth_token, oauth_token_secret
## ---

That’s it!

Search Tweets

Since one of our goals for this walkthrough is a very crude replication of the study by Rosenberg et al. (2021), let’s begin by introducing the search_tweets() function to try reading into R 5,000 tweets containing the NGSS hashtag and store as a new data frame ngss_all_tweets.

Type or copy the following code into your R script or console and run:

ngss_all_tweets <- search_tweets(q = "#NGSSchat", n=5000)

Note that the first argument q = that the search_tweets() function expects is the search term included in quotation marks and that n = specifies the maximum number of tweets

Your Turn ⤵

View your new ngss_all_tweetsdata frame using the code chunk below and answer the following questions:

ngss_all_tweets
## # A tibble: 143 × 90
##    user_id             status_id  created_at          screen_name text    source
##    <chr>               <chr>      <dttm>              <chr>       <chr>   <chr> 
##  1 61046868            145537064… 2021-11-02 03:06:14 BVSDcolora… "6th g… Twitt…
##  2 322246116           145536128… 2021-11-02 02:29:05 Erinsmayer  "6th g… Twitt…
##  3 246994677           145536093… 2021-11-02 02:27:41 sierralima… "#ngss… Twitt…
##  4 1374837540079960069 145535333… 2021-11-02 01:57:28 jayaisales  "#ngss… Jay AI
##  5 20657343            145535183… 2021-11-02 01:51:30 rachelbcon… "#ngss… Twitt…
##  6 3826588034          145534431… 2021-11-02 01:21:37 NoyceUSTEM  "Worki… Twitt…
##  7 3494073972          145532421… 2021-11-02 00:01:46 lizette_bu… "J is … Twitt…
##  8 1449382200          145532368… 2021-11-01 23:59:39 TdiShelton  "J is … Twitt…
##  9 873426577           145531350… 2021-11-01 23:19:11 starrscien… "J is … Twitt…
## 10 1258450700          145529993… 2021-11-01 22:25:16 msdiranna   "J is … Twitt…
## # … with 133 more rows, and 84 more variables: display_text_width <dbl>,
## #   reply_to_status_id <chr>, reply_to_user_id <chr>,
## #   reply_to_screen_name <chr>, is_quote <lgl>, is_retweet <lgl>,
## #   favorite_count <int>, retweet_count <int>, quote_count <int>,
## #   reply_count <int>, hashtags <list>, symbols <list>, urls_url <list>,
## #   urls_t.co <list>, urls_expanded_url <list>, media_url <list>,
## #   media_t.co <list>, media_expanded_url <list>, media_type <list>, …
  1. How many tweets did our query using the Twitter API actually return? How many variables?

  2. Why do you think our query pulled in far less than 5,000 tweets requested?

  3. Does our query also include retweets? How do you know?

Remove Retweets

While not explicitly mentioned in the paper, it’s likely the authors removed retweets in their query since a retweet is simply someone else reposting someone else’s tweet and would duplicate the exact same content of the original.

Let’s use the include_rts = argument to remove any retweets by setting it to FALSE:

ngss_non_retweets <- search_tweets("#NGSSchat", 
                                   n=5000, 
                                   include_rts = FALSE)

Using the OR Operator

If you recall from the Data Sources section above, the authors accessed tweets and user information from the hashtag-based #NGSSchat online community, all tweets that included any of the following phrases, with “/” indicating an additional phrase featuring the respective plural form: “ngss,” “next generation science standard/s,” “next gen science standard/s.”

Let’s modify our query using the OR operator to also include “ngss” so it will return tweets containing either #NGSSchat or “ngss” and assign to ngss_or_tweets:

ngss_or_tweets <- search_tweets(q = "#NGSSchat OR ngss", 
                                n=5000, 
                                include_rts = FALSE)

Your Turn ⤵

Try including both search terms but excluding the OR operator to answer the following question:

ngss_both_tweets <- search_tweets(q = "#NGSSchat ngss", 
                                n=5000, 
                                include_rts = FALSE)
  1. Does excluding the OR operator return more tweets, the same number of tweets, or fewer tweets? Why?

  2. What other useful arguments does the search_tweet() function contain? Try adding one and see what happens.

Hint: Use the ?search_tweets help function to learn more about the q argument and other arguments for composing search queries.

Use Multiple Queries

Unfortunately, the OR operator will only get us so far. In order to include the additional search terms, we will need to use the c() function to combine our search terms into a single list.

The rtweets package has an additional search_tweets2() function for using multiple queries in a search. To do this, either wrap single quotes around a search query using double quotes, e.g., q = '"next gen science standard"' or escape each internal double quote with a single backslash, e.g., q = "\"next gen science standard\"".

Copy and past the following code to store the results of our query in ngss_tweets:

ngss_tweets <- search_tweets2(c("#NGSSchat OR ngss", 
                                '"next generation science standard"', 
                                '"next generation science standards"', 
                                '"next gen science standard"', 
                                '"next gen science standards"' ), 
                              n=5000, 
                              include_rts = FALSE)

Our First Dictionary

Recall that for our research question we wanted to compare public sentiment about both the NGSS and CCSS state standards. Let’s go ahead and create our very first “dictionary” for identifying tweets related to either set of standards, and then use that dictionary for our the q = query argument to pull tweets related to the state standards.

To do so, we’ll need to add some additional search terms to our list:

ngss_dictionary <- c("#NGSSchat OR ngss", 
                     '"next generation science standard"', 
                     '"next generation science standards"', 
                     '"next gen science standard"', 
                     '"next gen science standards"') 

ngss_tweets <- search_tweets2(ngss_dictionary, n=5000, include_rts = FALSE)

Now let’s create a dictionary for the Common Core State Standards and pass that to our search_tweets() function to get the most recent tweets:

ccss_dictionary <- c("#commoncore", '"common core"') 
ccss_tweets <- 
  ccss_dictionary %>% 
  search_tweets2(n=5000, include_rts = FALSE)
## Warning: Rate limit exceeded - 88
## Warning: Rate limit exceeded

Notice that you can use the pipe operator with the search_tweets() function just like you would other functions from the tidyverse.

Your Turn ⤵

  1. Use the search_tweets function to create you own custom query for a twitter hashtag or topic(s) of interest.

Other Useful Queries

For your independent analysis, you may be interest in exploring posts by specific users rather than topics, key words, or hashtags. Yes, there is a function for that too!

For example, let’s create another list containing the usernames of me and some of my colleagues at the Friday Institute using the c() function again and use the get_timelines() function to get the most recent tweets from each of those users:

fi <- c("sbkellogg", "TooSweetGeek", "haspires", "tarheel93", "drcallie_tweets", "AlexDreier") 

fi_tweets <- fi %>% get_timelines(include_rts=FALSE)

And let’s use the sample_n() function from the dplyr package to pick 10 random tweets and use select() to select and view just the screenname and text columns that contains the user and the content of their post:

sample_n(fi_tweets, 10) %>% select(screen_name, text)
## # A tibble: 10 × 2
##    screen_name     text                                                         
##    <chr>           <chr>                                                        
##  1 haspires        "Day 2 of #NCEdEquity conference \"We actively seek principa…
##  2 drcallie_tweets "@DrTawannahAllen Thank you so much Dr. Allen! 😊"           
##  3 TooSweetGeek    "@Sea_likedaocean eh huh... eh huh... I understood the assig…
##  4 sbkellogg       "@jrosenberg6432 @ry_estrellado @ivelasq3 @kierisi More of a…
##  5 TooSweetGeek    "Day 3 of our programmed robotics workshop and even our robo…
##  6 TooSweetGeek    "@drcallie_tweets This gif is the cutest. Also… I got an ema…
##  7 AlexDreier      "Tech check for the 9th birthday party in the garage.\n\n☑️Pr…
##  8 TooSweetGeek    "@rKeeling75 We haven’t been able to bring ourselves to watc…
##  9 AlexDreier      "The thing that might hit hardest is, when zooming in, you c…
## 10 drcallie_tweets "Now listening to an insightful presentation by my #DeSIRE c…

We’ve only scratched the surface of the number of functions available in the rtweets package for searching Twitter. Use the following function to learn more about the {retwee} package:

vignette("intro", package="rtweet")

Your Turn ⤵

To conclude Section 2a, try one of the following search functions from the rtweet vignette:

  1. get_timelines() Get the most recent 3,200 tweets from users.
  2. stream_tweets() Randomly sample (approximately 1%) from the live stream of all tweets.
  3. get_friends() Retrieve a list of all the accounts a user follows.
  4. get_followers() Retrieve a list of the accounts following a user.
  5. get_favorites() Get the most recently favorited statuses by a user.
  6. get_trends() Discover what’s currently trending in a city.
  7. search_users() Search for 1,000 users with the specific hashtag in their profile bios.

2a. Part 2: Import Tweets from CSV

First, let’s use the by now familiar read_csv() and here() functions to import our ccss_tweets.csv file saved in our data folder:

ccss_tweets <- read_csv(here("unit-3", "data", "ccss-tweets.csv"), 
          col_types = cols(author_id = col_character(), 
                           id = col_character(),
                           conversation_id = col_character(), 
                           in_reply_to_user_id = col_character()
                           )
          )
## Warning: One or more parsing issues, see `problems()` for details

Note the addition of the col_types = argument for changing some of the column types to character strings because the numbers for those particular columns actually indicate identifiers for authors and tweets:

  • author_id = the author of the tweet

  • id = the unique id for each tweet

  • converastion_id = the unique id for each conversation thread

  • in_reply_to_user_id = the author of the tweet being replied to

Your Turn ⤵

Use the following code chunk to import the NGSS tweets located in the same data folder as our common core tweets. By default, R will treat numerical IDs in our dataset as numeric values but we will need to convert these to characters like demonstrated above for the purpose of analysis:

ngss_tweets <- read_csv(here("unit-3", "data", "ngss-tweets.csv"), 
          col_types = cols(author_id = col_character(), 
                           id = col_character(),
                           conversation_id = col_character(), 
                           in_reply_to_user_id = col_character()
                           )
          )
## Warning: One or more parsing issues, see `problems()` for details

Importing data and dealing with data types can be a bit tricky, especially for beginners. Recall from previous case studies that RStudio has an “Import Dataset” feature in the Environment Pane that can help you use the {readr} package and associated functions to greatly facilitate this process. If you get stuck, you can copy the code generated in the lower right hand corner of the Import Dataset window.

Now use the following code chunk to inspect the head() of each data frame and answer the questions that follow:

head(ngss_tweets)
## # A tibble: 6 × 8
##   text            created_at          author_id   id     conversation_id source 
##   <chr>           <dttm>              <chr>       <chr>  <chr>           <chr>  
## 1 "Please help u… 2021-01-06 00:50:49 3279907796  13466… 13466201998945… Twitte…
## 2 "What lab mate… 2021-01-06 00:45:32 1010324664… 13466… 13466188701325… Hootsu…
## 3 "I recently sa… 2021-01-06 00:39:37 61829645    13466… 13466173820858… Twitte…
## 4 "I'm thrilled … 2021-01-06 00:30:13 461653415   13466… 13466150172071… Twitte…
## 5 "PLS RT. Excit… 2021-01-06 00:15:05 22293234    13466… 13466112069671… Twitte…
## 6 "Inspired by M… 2021-01-06 00:00:00 3317960226  13466… 13466074140999… TweetD…
## # … with 2 more variables: possibly_sensitive <lgl>, in_reply_to_user_id <chr>
head(ccss_tweets)
## # A tibble: 6 × 8
##   text            created_at          author_id   id     conversation_id source 
##   <chr>           <dttm>              <chr>       <chr>  <chr>           <chr>  
## 1 "@catturd2 Hmm… 2021-01-02 00:49:28 1609854356  13451… 13451697062071… Twitte…
## 2 "@homebrew1500… 2021-01-02 00:40:05 1249594897… 13451… 13451533915976… Twitte…
## 3 "@ClayTravis D… 2021-01-02 00:32:46 8877070540… 13451… 13450258639942… Twitte…
## 4 "@KarenGunby @… 2021-01-02 00:24:01 1249594897… 13451… 13451533915976… Twitte…
## 5 "@keith3048 I … 2021-01-02 00:23:42 1252747591  13451… 13451533915976… Twitte…
## 6 "Probably comm… 2021-01-02 00:18:38 1276017320… 13451… 13451625486818… Twitte…
## # … with 2 more variables: possibly_sensitive <lgl>, in_reply_to_user_id <chr>

Wow, so much for a family friendly case study! Based on this very limited sample, which set of standards do you think Twitter users are more negative about?

  • CSSS

Let’s take a slightly larger sample of the CCSS tweets:

ccss_tweets %>% 
  sample_n(20) %>%
  relocate(text)
## # A tibble: 20 × 8
##    text           created_at          author_id   id     conversation_id source 
##    <chr>          <dttm>              <chr>       <chr>  <chr>           <chr>  
##  1 "@Xalapalynn … 2021-01-05 00:01:10 7370524812… 13462… 13462015775525… Twitte…
##  2 "@rachbarnhar… 2021-01-19 11:40:01 1238968161… 13514… 13514921859511… Twitte…
##  3 "DISTRIBUTIVE… 2021-02-04 09:12:10 1943201168  13572… 13572556173589… dlvr.it
##  4 "You know wha… 2021-04-29 22:48:51 1156353723… 13879… 13879017229249… Twitte…
##  5 "@jennylaboni… 2021-04-15 20:29:43 9584424828… 13827… 13827911928118… Twitte…
##  6 "@DornMatters… 2021-02-14 05:32:38 497601358   13608… 13608137094095… Twitte…
##  7 "@MattWelch E… 2021-02-16 14:57:54 824420376   13616… 13616867293721… Twitte…
##  8 "@randy_osmon… 2021-01-01 21:33:05 7033172956… 13451… 13451188696949… Twitte…
##  9 "To destroy t… 2021-02-16 14:18:08 221803891   13616… 13616812693865… Twitte…
## 10 "If it makes … 2021-01-17 20:49:47 7765610711… 13509… 13509081978093… Twitte…
## 11 "if the #ROC … 2021-04-21 18:04:22 150238257   13849… 13849310287673… TweetD…
## 12 "If you confu… 2021-04-17 18:07:04 1312999233… 13834… 13834821543492… Twitte…
## 13 "@PegGrafwall… 2021-03-17 00:04:17 768673261   13719… 13719730851513… Twitte…
## 14 "Perhaps the … 2021-04-04 01:42:26 1369737446… 13785… 13785233224687… Twitte…
## 15 "@WMUR9 They … 2021-05-05 23:42:08 1376238173… 13900… 13897220464149… Twitte…
## 16 "🤣🤣🤣\nWher… 2021-01-18 15:53:37 1061136916… 13511… 13511960540715… Twitte…
## 17 "i am a produ… 2021-02-23 03:03:57 7069651697… 13640… 13640483241107… Twitte…
## 18 "@robertkapli… 2021-05-18 12:14:08 1129057699… 13946… 13943658535760… Twitte…
## 19 "@MustangMan_… 2021-02-04 01:59:38 1164379131… 13571… 13571124924141… Twitte…
## 20 "@WINDOCTORRX… 2021-02-20 14:27:34 1168924850… 13631… 13631268989272… Twitte…
## # … with 2 more variables: possibly_sensitive <lgl>, in_reply_to_user_id <chr>

Your Turn

Use the code chunk below to take a sample of the NGSS tweets. Try to do it without looking at the code above first:

ngss_tweets %>% 
  sample_n(20) %>%
  relocate(text)
## # A tibble: 20 × 8
##    text           created_at          author_id   id     conversation_id source 
##    <chr>          <dttm>              <chr>       <chr>  <chr>           <chr>  
##  1 "Happy #Arbor… 2021-04-30 13:00:39 14269711    13881… 13881160870704… Hootsu…
##  2 "#808Educate\… 2021-02-28 22:18:13 336253      13661… 13661507414805… Twitte…
##  3 "A1 \n“...equ… 2021-03-19 01:12:10 1376999610  13727… 13727174992471… Twitte…
##  4 "Happy Spring… 2021-03-22 15:11:30 3097084436  13740… 13740158897843… Twitte…
##  5 "📢Coming thi… 2021-03-23 23:16:37 1342104169  13745… 13745003581609… Twitte…
##  6 "@ntmoore @LC… 2021-01-11 02:40:34 1873659019  13484… 13473161935736… Twitte…
##  7 "How can sink… 2021-03-22 23:49:16 96848837    13741… 13741461869454… Twitte…
##  8 "@Blueyesalim… 2021-01-08 02:17:01 1449382200  13473… 13473657541155… TweetD…
##  9 "I'm taking D… 2021-01-28 16:10:34 7940424824… 13548… 13548241947903… Twitte…
## 10 "Develop real… 2021-05-17 15:09:20 9862412897… 13943… 13943090628383… HubSpot
## 11 "@sciresSoehl… 2021-01-08 02:04:56 1449382200  13473… 13473631853057… TweetD…
## 12 "KG Ss help B… 2021-05-06 02:07:32 1623116820  13901… 13901260519765… TweetD…
## 13 "edutopia wil… 2021-02-02 15:47:32 3905716279  13566… 13566303394566… Twitte…
## 14 "I had never … 2021-05-14 21:13:46 7028944996… 13933… 13933136135118… Twitte…
## 15 "@JohnRussell… 2021-04-26 22:03:56 3098279073  13868… 13866701457376… Twitte…
## 16 "@jrosenberg6… 2021-01-08 03:00:12 40062074    13473… 13473631853057… Twitte…
## 17 "Great Questi… 2021-05-21 01:21:59 558971700   13955… 13955504039038… TweetD…
## 18 "Thank you @K… 2021-04-24 17:58:27 64274716    13860… 13860167006346… Twitte…
## 19 "What type of… 2021-01-25 21:28:54 1173973673… 13538… 13538171444678… Twitte…
## 20 "Todd will be… 2021-05-12 15:36:44 3317960226  13925… 13925040185896… Twitte…
## # … with 2 more variables: possibly_sensitive <lgl>, in_reply_to_user_id <chr>
  1. Still of the same opinion?

    • Yes, these appear much less negative.
  2. What else you notice about our data sets? Record a few observations that you think are relevant to our analysis or might be useful for future analyses.

  3. What questions do you have about these data sets? What are you still curious about?

2b. Restructure Data

Subset Tweets

As you may have noticed, we have more data than we need for our analysis and should probably pare it down to just what we’ll use.

Let’s start with the CCSS tweets first. And since this is a family friendly case study, let’s use the filter() function introduced in previous labs to filter out rows containing “possibly sensitive” language:

ccss_tweets_1 <- ccss_tweets %>% 
  filter(possibly_sensitive == "FALSE")

Now let’s use the select() function to select the following columns from our new ss_tweets_clean data frame:

  1. text containing the tweet which is our primary data source of interest
  2. author_id of the user who created the tweet
  3. created_at timestamp for examining changes in sentiment over time
  4. conversation_id for examining sentiment by conversations
  5. id for the unique reference id for each tweet and useful for counts
ccss_tweets_2 <- ccss_tweets_1 %>% 
  select(text,
         author_id,
         created_at, 
         conversation_id,
         id)

Your Turn ⤵

Note: The select() function will also reorder your columns based on the order in which you list them.

Use the code chunk below to reorder the columns to your liking and assign to ccss_tweets_3:

ccss_tweets_3 <- ccss_tweets_1 %>% 
  select(id,
         text,
         author_id,
         created_at, 
         conversation_id)

Add & Relocate Columns

Finally, since we are interested in comparing the sentiment of NGSS tweets with CSSS tweets, it would be helpful if we had a column to quickly identify the set of state standards with which each tweet is associated.

We’ll use the mutate() function to create a new variable called standards to label each tweets as “ngss”:

ccss_tweets_4 <- mutate(ccss_tweets_2, standards = "ccss")

colnames(ccss_tweets_4)
## [1] "text"            "author_id"       "created_at"      "conversation_id"
## [5] "id"              "standards"

And just because it bothers me, I’m going to use the relocate() function to move the standards column to the first position so I can quickly see which standards the tweet is from:

ccss_tweets_5 <- relocate(ccss_tweets_4, standards)

colnames(ccss_tweets_5)
## [1] "standards"       "text"            "author_id"       "created_at"     
## [5] "conversation_id" "id"

Again, we could also have used the select() function to reorder columns like so:

ccss_tweets_5 <- ccss_tweets_4 %>% 
  select(standards,
         text,
         author_id,
         created_at, 
         conversation_id,
         id)

colnames(ccss_tweets_5)
## [1] "standards"       "text"            "author_id"       "created_at"     
## [5] "conversation_id" "id"

Before moving on to the CCSS standards, let’s use the %>% operator and rewrite the code from our wrangling so there is less redundancy and it is easier to read:

# Search Tweets
ccss_tweets_clean <- ccss_tweets %>%
  filter(possibly_sensitive == "FALSE") %>%
  select(text, author_id, created_at, conversation_id, id) %>%
  mutate(standards = "ccss") %>%
  relocate(standards)

head(ccss_tweets_clean)
## # A tibble: 6 × 6
##   standards text          author_id   created_at          conversation_id id    
##   <chr>     <chr>         <chr>       <dttm>              <chr>           <chr> 
## 1 ccss      "@catturd2 H… 1609854356  2021-01-02 00:49:28 13451697062071… 13451…
## 2 ccss      "@homebrew15… 1249594897… 2021-01-02 00:40:05 13451533915976… 13451…
## 3 ccss      "@ClayTravis… 8877070540… 2021-01-02 00:32:46 13450258639942… 13451…
## 4 ccss      "@KarenGunby… 1249594897… 2021-01-02 00:24:01 13451533915976… 13451…
## 5 ccss      "@keith3048 … 1252747591  2021-01-02 00:23:42 13451533915976… 13451…
## 6 ccss      "Probably co… 1276017320… 2021-01-02 00:18:38 13451625486818… 13451…

Your Turn

Recall from section 1b. Define Questions that we are interested in comparing word usage and public sentiment around both the Common Core and Next Gen Science Standards.

Create an new ngss_tweets_clean data frame consisting of the Next Generation Science Standards tweets we imported by using the code above as a guide.

ngss_tweets_clean <- ngss_tweets %>%
  filter(possibly_sensitive == "FALSE") %>%
  select(text, author_id, created_at, conversation_id, id) %>%
  mutate(standards = "ngss") %>%
  relocate(standards)

head(ngss_tweets_clean)
## # A tibble: 6 × 6
##   standards text          author_id   created_at          conversation_id id    
##   <chr>     <chr>         <chr>       <dttm>              <chr>           <chr> 
## 1 ngss      "Please help… 3279907796  2021-01-06 00:50:49 13466201998945… 13466…
## 2 ngss      "What lab ma… 1010324664… 2021-01-06 00:45:32 13466188701325… 13466…
## 3 ngss      "I recently … 61829645    2021-01-06 00:39:37 13466173820858… 13466…
## 4 ngss      "I'm thrille… 461653415   2021-01-06 00:30:13 13466150172071… 13466…
## 5 ngss      "PLS RT. Exc… 22293234    2021-01-06 00:15:05 13466112069671… 13466…
## 6 ngss      "Inspired by… 3317960226  2021-01-06 00:00:00 13466074140999… 13466…

Merge Data Frames

Finally, let’s combine our CCSS and NGSS tweets into a single data frame by using the union() function from dplyr and simply supplying the data frames that you want to combine as arguments:

ss_tweets <- union(ccss_tweets_clean,
                   ngss_tweets_clean)

ss_tweets
## # A tibble: 35,233 × 6
##    standards text          author_id  created_at          conversation_id id    
##    <chr>     <chr>         <chr>      <dttm>              <chr>           <chr> 
##  1 ccss      "@catturd2 H… 1609854356 2021-01-02 00:49:28 13451697062071… 13451…
##  2 ccss      "@homebrew15… 124959489… 2021-01-02 00:40:05 13451533915976… 13451…
##  3 ccss      "@ClayTravis… 887707054… 2021-01-02 00:32:46 13450258639942… 13451…
##  4 ccss      "@KarenGunby… 124959489… 2021-01-02 00:24:01 13451533915976… 13451…
##  5 ccss      "@keith3048 … 1252747591 2021-01-02 00:23:42 13451533915976… 13451…
##  6 ccss      "Probably co… 127601732… 2021-01-02 00:18:38 13451625486818… 13451…
##  7 ccss      "@LisaS4680 … 922132923… 2021-01-02 00:16:11 13451595466087… 13451…
##  8 ccss      "@JerryGl291… 122016089… 2021-01-02 00:10:29 13447179758914… 13451…
##  9 ccss      "@JBatNC304 … 880914489… 2021-01-02 00:09:15 13447403608625… 13451…
## 10 ccss      "@chiefaugur… 124959489… 2021-01-01 23:54:38 13451533915976… 13451…
## # … with 35,223 more rows

Note that when creating a “union” like this (i.e. stacking one data frame on top of another), you should have the same number of columns in each data frame and they should be in the exact same order.

Alternatively, we could have used the bind_rows() function from {dplyr} as well:

ss_tweets <- bind_rows(ccss_tweets_clean,
                       ngss_tweets_clean)

ss_tweets
## # A tibble: 35,233 × 6
##    standards text          author_id  created_at          conversation_id id    
##    <chr>     <chr>         <chr>      <dttm>              <chr>           <chr> 
##  1 ccss      "@catturd2 H… 1609854356 2021-01-02 00:49:28 13451697062071… 13451…
##  2 ccss      "@homebrew15… 124959489… 2021-01-02 00:40:05 13451533915976… 13451…
##  3 ccss      "@ClayTravis… 887707054… 2021-01-02 00:32:46 13450258639942… 13451…
##  4 ccss      "@KarenGunby… 124959489… 2021-01-02 00:24:01 13451533915976… 13451…
##  5 ccss      "@keith3048 … 1252747591 2021-01-02 00:23:42 13451533915976… 13451…
##  6 ccss      "Probably co… 127601732… 2021-01-02 00:18:38 13451625486818… 13451…
##  7 ccss      "@LisaS4680 … 922132923… 2021-01-02 00:16:11 13451595466087… 13451…
##  8 ccss      "@JerryGl291… 122016089… 2021-01-02 00:10:29 13447179758914… 13451…
##  9 ccss      "@JBatNC304 … 880914489… 2021-01-02 00:09:15 13447403608625… 13451…
## 10 ccss      "@chiefaugur… 124959489… 2021-01-01 23:54:38 13451533915976… 13451…
## # … with 35,223 more rows

The distinction between these two functions is that union by default removes any duplicate rows that might have shown up in our queries.

However, since both functions returned the same number of rows, it’s clear we do not have any duplicates. If we wanted to verify, {dplyr} also has an intersect function to merge the two data frames, but only where they intersect(), or where they have duplicate rows.

ss_tweets_duplicate <- intersect(ccss_tweets_clean,
                                 ngss_tweets_clean)

Your Turn

Finally, let’s take a quick look at both the head() and the tail() of this new ss_tweets data frame to make sure it contains both “ngss” and “ccss” standards:

head(ss_tweets)
## # A tibble: 6 × 6
##   standards text          author_id   created_at          conversation_id id    
##   <chr>     <chr>         <chr>       <dttm>              <chr>           <chr> 
## 1 ccss      "@catturd2 H… 1609854356  2021-01-02 00:49:28 13451697062071… 13451…
## 2 ccss      "@homebrew15… 1249594897… 2021-01-02 00:40:05 13451533915976… 13451…
## 3 ccss      "@ClayTravis… 8877070540… 2021-01-02 00:32:46 13450258639942… 13451…
## 4 ccss      "@KarenGunby… 1249594897… 2021-01-02 00:24:01 13451533915976… 13451…
## 5 ccss      "@keith3048 … 1252747591  2021-01-02 00:23:42 13451533915976… 13451…
## 6 ccss      "Probably co… 1276017320… 2021-01-02 00:18:38 13451625486818… 13451…
tail(ss_tweets)
## # A tibble: 6 × 6
##   standards text           author_id  created_at          conversation_id id    
##   <chr>     <chr>          <chr>      <dttm>              <chr>           <chr> 
## 1 ngss      @BK3DSci Bria… 558971700  2021-05-21 01:10:28 13955471161272… 13955…
## 2 ngss      A1  My studen… 1449382200 2021-05-21 01:10:20 13955474728990… 13955…
## 3 ngss      A1: It is an … 136014942  2021-05-21 01:09:58 13955473807585… 13955…
## 4 ngss      @MsB_Reilly M… 3164721571 2021-05-21 01:09:54 13955471085775… 13955…
## 5 ngss      A1.5 I also l… 14449947   2021-05-21 01:09:46 13955473306029… 13955…
## 6 ngss      @MsB_Reilly W… 558971700  2021-05-21 01:09:44 13955471085775… 13955…

2c. Tidy Text

Text data by it’s very nature is ESPECIALLY untidy and is sometimes referred to as “unstructured” data. In this section we learn some very useful functions from the {tidytext} package to convert text to and from tidy formats. Having our text in a tidy format will allow us to switch seamlessly between tidy tools and existing text mining packages, while also making it easier to visualize text summaries in other data analysis tools like Tableau.

Tokenize Text

In Chapter 1 of Text Mining with R, Silge & Robinson (2017) define the tidy text format as a table with one-token-per-row, and explain that:

A token is a meaningful unit of text, such as a word, two-word phrase (bigram), or sentence that we are interested in using for analysis. And tokenization is the process of splitting text into tokens.

This one-token-per-row structure is in contrast to the ways text is often stored for text analysis, perhaps as strings in a corpus object or in a document-term matrix. For tidy text mining, the token that is stored in each row is most often a single word, but can also be an n-gram, sentence, or paragraph.

For this part of our workflow, our goal is to transform our ss_tweets data from this:

head(relocate(ss_tweets, text))
## # A tibble: 6 × 6
##   text          standards author_id   created_at          conversation_id id    
##   <chr>         <chr>     <chr>       <dttm>              <chr>           <chr> 
## 1 "@catturd2 H… ccss      1609854356  2021-01-02 00:49:28 13451697062071… 13451…
## 2 "@homebrew15… ccss      1249594897… 2021-01-02 00:40:05 13451533915976… 13451…
## 3 "@ClayTravis… ccss      8877070540… 2021-01-02 00:32:46 13450258639942… 13451…
## 4 "@KarenGunby… ccss      1249594897… 2021-01-02 00:24:01 13451533915976… 13451…
## 5 "@keith3048 … ccss      1252747591  2021-01-02 00:23:42 13451533915976… 13451…
## 6 "Probably co… ccss      1276017320… 2021-01-02 00:18:38 13451625486818… 13451…

Into a “tidy text” one-token-per-row format that looks like this:

tidy_tweets <- ss_tweets %>% 
  unnest_tokens(output = word, 
                input = text) %>%
  relocate(word)

head(tidy_tweets)
## # A tibble: 6 × 6
##   word     standards author_id  created_at          conversation_id   id        
##   <chr>    <chr>     <chr>      <dttm>              <chr>             <chr>     
## 1 catturd2 ccss      1609854356 2021-01-02 00:49:28 1345169706207109… 134517031…
## 2 hmmmm    ccss      1609854356 2021-01-02 00:49:28 1345169706207109… 134517031…
## 3 common   ccss      1609854356 2021-01-02 00:49:28 1345169706207109… 134517031…
## 4 core     ccss      1609854356 2021-01-02 00:49:28 1345169706207109… 134517031…
## 5 math     ccss      1609854356 2021-01-02 00:49:28 1345169706207109… 134517031…
## 6 now      ccss      1609854356 2021-01-02 00:49:28 1345169706207109… 134517031…

If you take ECI 588: Text Mining in Education, you’ll learn about other data structures for text analysis like the document-term matrix and corpus objects. For now, however, working with the familiar tidy data frame allows us to take advantage of popular packages that use the shared tidyverse syntax and principles for wrangling, exploring, and modeling data.

As demonstrated above, the tidytext package provides the incredibly powerful unnest_tokens() function to tokenize text (including tweets!) and convert them to a one-token-per-row format.

Let’s tokenize our tweets by using this function to split each tweet into a single row to make it easier to analyze and take a look:

ss_tokens <- unnest_tokens(ss_tweets, 
                           output = word, 
                           input = text)

head(relocate(ss_tokens, word))
## # A tibble: 6 × 6
##   word     standards author_id  created_at          conversation_id   id        
##   <chr>    <chr>     <chr>      <dttm>              <chr>             <chr>     
## 1 catturd2 ccss      1609854356 2021-01-02 00:49:28 1345169706207109… 134517031…
## 2 hmmmm    ccss      1609854356 2021-01-02 00:49:28 1345169706207109… 134517031…
## 3 common   ccss      1609854356 2021-01-02 00:49:28 1345169706207109… 134517031…
## 4 core     ccss      1609854356 2021-01-02 00:49:28 1345169706207109… 134517031…
## 5 math     ccss      1609854356 2021-01-02 00:49:28 1345169706207109… 134517031…
## 6 now      ccss      1609854356 2021-01-02 00:49:28 1345169706207109… 134517031…

There is A LOT to unpack with this function:

  • First notice that unnest_tokens() expects a data frame as the first argument, followed by two column names.
  • The next argument is an output column name that doesn’t currently exist but will be created as the text is “unnested” into it, word in this case).
  • This is followed by the input column that the text comes from, which we uncreatively named text.
  • By default, a token is an individual word or unigram.
  • Other columns, such as author_id and created_at, are retained.
  • All punctuation has been removed.
  • Tokens have been changed to lowercase, which makes them easier to compare or combine with other datasets (use the to_lower = FALSE argument to turn off if desired).

Note: Since {tidytext} follows tidy data principles, we also could have used the %>% operator to pass our data frame to the unnest_tokens() function like so:

ss_tokens <- ss_tweets %>%
  unnest_tokens(output = word, 
                input = text)

ss_tokens
## # A tibble: 911,173 × 6
##    standards author_id    created_at          conversation_id  id        word   
##    <chr>     <chr>        <dttm>              <chr>            <chr>     <chr>  
##  1 ccss      1609854356   2021-01-02 00:49:28 134516970620710… 13451703… cattur…
##  2 ccss      1609854356   2021-01-02 00:49:28 134516970620710… 13451703… hmmmm  
##  3 ccss      1609854356   2021-01-02 00:49:28 134516970620710… 13451703… common 
##  4 ccss      1609854356   2021-01-02 00:49:28 134516970620710… 13451703… core   
##  5 ccss      1609854356   2021-01-02 00:49:28 134516970620710… 13451703… math   
##  6 ccss      1609854356   2021-01-02 00:49:28 134516970620710… 13451703… now    
##  7 ccss      1609854356   2021-01-02 00:49:28 134516970620710… 13451703… makes  
##  8 ccss      1609854356   2021-01-02 00:49:28 134516970620710… 13451703… sense  
##  9 ccss      12495948971… 2021-01-02 00:40:05 134515339159767… 13451679… homebr…
## 10 ccss      12495948971… 2021-01-02 00:40:05 134515339159767… 13451679… i      
## # … with 911,163 more rows

Your Turn ⤵

The unnest_tokens() function also has a specialized “tweets” tokenizer in the tokens = argument that is very useful for dealing with Twitter text. It retains hashtags and mentions of usernames with the @ symbol as illustrated by our @catturd2 friend who featured prominently in our the first CCSS tweet.

Rewrite the code above (you can check answer below) to include the token argument set to “tweets,” assign to ss_tokens_1, and answer the questions that follow:

ss_tokens_1 <- unnest_tokens(ss_tweets, 
                             output = word, 
                             input = text, 
                             token = "tweets")
## Using `to_lower = TRUE` with `token = 'tweets'` may not preserve URLs.
head(ss_tokens_1)
## # A tibble: 6 × 6
##   standards author_id  created_at          conversation_id   id           word  
##   <chr>     <chr>      <dttm>              <chr>             <chr>        <chr> 
## 1 ccss      1609854356 2021-01-02 00:49:28 1345169706207109… 13451703111… @catt…
## 2 ccss      1609854356 2021-01-02 00:49:28 1345169706207109… 13451703111… hmmmm 
## 3 ccss      1609854356 2021-01-02 00:49:28 1345169706207109… 13451703111… common
## 4 ccss      1609854356 2021-01-02 00:49:28 1345169706207109… 13451703111… core  
## 5 ccss      1609854356 2021-01-02 00:49:28 1345169706207109… 13451703111… math  
## 6 ccss      1609854356 2021-01-02 00:49:28 1345169706207109… 13451703111… now
  1. How many observations were our original ss_tweets data frame?

  2. How many observations are there now? Why the difference?

Before we move any further let’s take a quick look at the most common word in our two datasets. To do so, we’ll introduce the easy to use count() function from the {dplyr} package.

Like most functions we’ve introduced, the first argument count() expects is a data frame which we provided with the %>% operator, followed but the column, in our case word, whose values we want to count:

ss_tokens_1 %>%
  count(word, sort = TRUE)
## # A tibble: 74,235 × 2
##    word       n
##    <chr>  <int>
##  1 common 26665
##  2 core   26470
##  3 the    25818
##  4 to     20478
##  5 and    15552
##  6 of     13106
##  7 a      12472
##  8 math   11788
##  9 is     11562
## 10 in     10076
## # … with 74,225 more rows

Well, many of these tweets are clearly about the CCSS and math at least, but beyond that it’s a bit hard to tell because there are so many “stop words” like “the,” “to,” “and,” “in” that don’t carry much meaning by themselves.

Remove Stop Words

Often in text analysis, we will want to remove these stop words if they are not useful for an analysis. The stop_words dataset in the {tidytext} package contains stop words from three lexicons. We can use them all together, as we have here, or filter() to only use one set of stop words if that is more appropriate for a certain analysis.

Let’s take a closer the lexicons and stop words included in each:

View(stop_words)

The anti_join Function

In order to remove these stop words, we will use a function called anti_join() that looks for matching values in a specific column from two datasets and returns rows from the original dataset that have no matches like so:

For a good overview of the different dplyr joins see here: https://medium.com/the-codehub/beginners-guide-to-using-joins-in-r-682fc9b1f119.

Now let’s remove stop words that don’t help us learn much about what people are saying about the state standards.

ss_tokens_2 <- anti_join(ss_tokens_1,
                         stop_words,
                         by = "word")

head(ss_tokens_2)
## # A tibble: 6 × 6
##   standards author_id  created_at          conversation_id   id           word  
##   <chr>     <chr>      <dttm>              <chr>             <chr>        <chr> 
## 1 ccss      1609854356 2021-01-02 00:49:28 1345169706207109… 13451703111… @catt…
## 2 ccss      1609854356 2021-01-02 00:49:28 1345169706207109… 13451703111… hmmmm 
## 3 ccss      1609854356 2021-01-02 00:49:28 1345169706207109… 13451703111… common
## 4 ccss      1609854356 2021-01-02 00:49:28 1345169706207109… 13451703111… core  
## 5 ccss      1609854356 2021-01-02 00:49:28 1345169706207109… 13451703111… math  
## 6 ccss      1609854356 2021-01-02 00:49:28 1345169706207109… 13451703111… makes

Notice that we’ve specified the by = argument to look for matching words in the word column for both data sets and remove any rows from the tweet_tokens dataset that match the stop_words dataset. Remember when we first tokenized our dataset I conveniently chose output = word as the column name because it matches the column name word in the stop_words dataset contained in the tidytext package. This makes our call to anti_join()simpler because anti_join() knows to look for the column named word in each dataset. However this wasn’t really necessary since word is the only matching column name in both datasets and it would have matched those columns by default.

Your Turn ⤵

Use the code chunk below to take a quick count of the most common tokens in our ss_tweets_2 data frame to see if the results are a little more meaningful, then answer the questions that follow.

ss_tokens_2 %>%
  count(word, sort = TRUE)
## # A tibble: 73,596 × 2
##    word          n
##    <chr>     <int>
##  1 common    26665
##  2 core      26470
##  3 math      11788
##  4 #ngsschat  3059
##  5 amp        2904
##  6 #ngss      2655
##  7 students   2559
##  8 science    2300
##  9 standards  2273
## 10 education  2174
## # … with 73,586 more rows

Your Turn ⤵

  1. How many unique tokens are in our data tidied text?

    • 73,596
  2. How many times does the word “math” occur in our set of tweets?

    • 11,788

Custom Stop Words

Notice that the nonsense word “amp” is among our high frequency words as well as some. We can create our own custom stop word list to to weed out any additional words that don’t carry much meaning but skew our data by being so prominent.

Let’s create a custom stop word list by using the simple c() function to combine our words. We can the add a filter to keep rows where words in our word column do NOT ! match words %in% my_stopwords list:

my_stopwords <- c("amp", "=", "+")

ss_tokens_3 <-
  ss_tokens_2 %>%
  filter(!word %in% my_stopwords)

Let’s take a look at our top words again and see if that did the trick:

ss_tokens_3 %>%
  count(word, sort = TRUE)
## # A tibble: 73,593 × 2
##    word          n
##    <chr>     <int>
##  1 common    26665
##  2 core      26470
##  3 math      11788
##  4 #ngsschat  3059
##  5 #ngss      2655
##  6 students   2559
##  7 science    2300
##  8 standards  2273
##  9 education  2174
## 10 school     2154
## # … with 73,583 more rows

Much better! Note that we could extend this stop word list indefinitely. Feel free to use the code chunk below to try adding more words to our stop list.

Before we move any further, let’s save our tidied tweets as a new data frame for Section 3 and also save it as a .csv file in our data folder:

ss_tidy_tweets <- ss_tokens_3

write_csv(ss_tokens_3, here("unit-3", "data", "ss_tidy_tweets.csv"))

3. EXPLORE

Calculating summary statistics, data visualization, and feature engineering (the process of creating new variables from a dataset) are a key part of exploratory data analysis. For our first lab, we’re going to keep things super simple and focus on:

  1. Top Tokens. Since once of our goals is to compare tweets about the NGSS and CSSS standards, we’ll take a look at the to 50 words that appear in each.

  2. Word Clouds. To help illustrate the relative frequency each of these top 50 words occurs, we’ll introduce the {wordclouds2} package for creating interactive word clouds that can be knitted with your HTML doc.

3a. Top Tokens

First, let’s take advantage of the the %>% operator combine some of the functions we’ve used above with the top_n() function from the {dplyr} package. By default, this function is looking for a data frame as the first argument, and then the number of rows to return.

Let’s take a look at the top tokens among the CCSS tweets by filtering our standards by CCSS, counting the number of times each word occurs, and taking the look at the 50 most common words:

ccss_top_tokens <- ss_tidy_tweets %>%
  filter(standards == "ccss") %>%
  count(word, sort = TRUE) %>%
  top_n(50)
## Selecting by n
ccss_top_tokens
## # A tibble: 50 × 2
##    word          n
##    <chr>     <int>
##  1 common    26599
##  2 core      26405
##  3 math      11688
##  4 education  1917
##  5 kids       1821
##  6 standards  1810
##  7 school     1806
##  8 dont       1622
##  9 grade      1443
## 10 people     1410
## # … with 40 more rows

Not surprisingly, our search terms appear in the top 50 but the word “math” also features prominently among CCSS tweets!

Word Clouds

Word clouds are much maligned and sometimes referred to as the “pie charts of text analysis,” but they can be useful for communicating simple summaries of qualitative data for education practitioners and are intuitive for them to interpret. Also, for better or worse, these are now included as a default visualization for open-ended survey items in online Qualtrics reports and you can even add your own stop words.

The {wordclouds2} package is pretty dead simple tool for generating HTML based interactive word clouds. By default, when you pass a data frame to the wordcloud2() function, it will look for a word column and a column with frequencies or counts, i.e., our column n that we created with the count() function.

Let’s run the wordcloud2() function on our ccss_top_tokens data frame.

wordcloud2(ccss_top_tokens)

As you can see, “math” is a pretty common topic when discussing the common core on twitter but words like “core” and “common” – which you can see better if you click the “show in a new window” button or run the code in you console – are not very helpful since those were in our search terms when pulling data from Twitter.

In fact, search terms like these we might want to exclude from a final data product we share with with education partners or in a publication and instead include these these in a title or caption.

ccss_top_tokens %>%
  filter(word != "common" & word != "core") %>%
  wordcloud2()

Your Turn ⤵

In the code chunk below, filter, count and select the top 50 tokens to create a word cloud for the NGSS tweets. A gold star if you can can do it without using the assignment operator or looking at the code above!

ss_tidy_tweets %>%
  filter(standards == "ngss") %>%
  count(word, sort = TRUE) %>%
  top_n(50) %>%
  wordcloud2()
## Selecting by n

Also, take a look at the help file for wordclouds2 to see if there might be other ways you could improve the aesthetics of this visualization.

4. MODEL

Now that we have our tweets nice and tidy, we’re almost ready to begin exploring public sentiment (at least for the past week due to Twitter API rate limits) around the CCSS and NGSS standards. For this part of our workflow we introduce two new functions from the tidytext and dplyr packages respectively:

How do you “measure” sentiment?

Sentiment analysis tries to evaluate words for their emotional association. In Text Mining with R: A Tidy Approach, Silge aand Robinson point out that,

One way to analyze the sentiment of a text is to consider the text as a combination of its individual words and the sentiment content of the whole text as the sum of the sentiment content of the individual words.

This isn’t the only way to approach sentiment analysis, but it is an easier entry point into sentiment analysis and you’ll find that is it often-used in publications that utilize sentiment analysis.

The {tidytext} package provides access to several sentiment lexicons, sometimes referred to as dictionaries, based on unigrams, i.e., single words. These lexicons contain many English words and the words are assigned scores for positive/negative sentiment, and also possibly emotions like joy, anger, sadness, and so forth.

The three general-purpose lexicons we’ll focus on are:

  • AFINN assigns words with a score that runs between -5 and 5, with negative scores indicating negative sentiment and positive scores indicating positive sentiment.

  • bing categorizes words in a binary fashion into positive and negative categories.

  • nrc categorizes words in a binary fashion (“yes”/“no”) into categories of positive, negative, anger, anticipation, disgust, fear, joy, sadness, surprise, and trust.

Note that if this is your first time using the AFINN and NRC lexicons, you may prompted to download both Respond yes to the prompt by entering “1” and the NRC and AFINN lexicons will download. You’ll only have to do this the first time you use the NRC lexicon.

Let’s take a quick look at each of these lexicons using the get_sentiments() function and assign them to their respective names for later use:

afinn <- get_sentiments("afinn")

afinn
## # A tibble: 2,477 × 2
##    word       value
##    <chr>      <dbl>
##  1 abandon       -2
##  2 abandoned     -2
##  3 abandons      -2
##  4 abducted      -2
##  5 abduction     -2
##  6 abductions    -2
##  7 abhor         -3
##  8 abhorred      -3
##  9 abhorrent     -3
## 10 abhors        -3
## # … with 2,467 more rows
bing <- get_sentiments("bing")

bing
## # A tibble: 6,786 × 2
##    word        sentiment
##    <chr>       <chr>    
##  1 2-faces     negative 
##  2 abnormal    negative 
##  3 abolish     negative 
##  4 abominable  negative 
##  5 abominably  negative 
##  6 abominate   negative 
##  7 abomination negative 
##  8 abort       negative 
##  9 aborted     negative 
## 10 aborts      negative 
## # … with 6,776 more rows
nrc <- get_sentiments("nrc")

nrc
## # A tibble: 13,875 × 2
##    word        sentiment
##    <chr>       <chr>    
##  1 abacus      trust    
##  2 abandon     fear     
##  3 abandon     negative 
##  4 abandon     sadness  
##  5 abandoned   anger    
##  6 abandoned   fear     
##  7 abandoned   negative 
##  8 abandoned   sadness  
##  9 abandonment anger    
## 10 abandonment fear     
## # … with 13,865 more rows

And just out of curiosity, let’s take a look at the loughran lexicon as well:

loughran <- get_sentiments("loughran")

loughran
## # A tibble: 4,150 × 2
##    word         sentiment
##    <chr>        <chr>    
##  1 abandon      negative 
##  2 abandoned    negative 
##  3 abandoning   negative 
##  4 abandonment  negative 
##  5 abandonments negative 
##  6 abandons     negative 
##  7 abdicated    negative 
##  8 abdicates    negative 
##  9 abdicating   negative 
## 10 abdication   negative 
## # … with 4,140 more rows
✅ Comprehension Check
  1. How were these sentiment lexicons put together and validated? Hint: take a look at Chapter 2 from Text Mining with R.

  2. Why should we be cautious when using and interpreting them?

Come to the Dark Side

As noted in the PERPARE section, the {vader} package is for the Valence Aware Dictionary for sEntiment Reasoning (VADER), a rule-based model for general sentiment analysis of social media text and specifically attuned to measuring sentiment in microblog-like contexts such as Twitter.

The VADER assigns a number of different sentiment measures based on the context of the entire social-media post or in our case a tweet. Ultimately, however, these measures are based on a sentiment lexicon similar to those you just saw above. One benefit of using VADER rather than the approaches described by Silge and Robinson is that we use it with our tweets in their original format and skip the text preprocessing steps demonstrated above.

One drawback to VADER is that it can take a little while to run since it’s computationally intensive. Instead of analyzing tens of thousands of tweets, let’s read in our original ccss-tweets.csv and take instead just a sample of 500 “untidu” CCSS tweets using the sample_n() function:

ccss_sample <- read_csv(here("unit-3", "data", "ccss-tweets.csv")) %>%
  sample_n(500)
## Warning: One or more parsing issues, see `problems()` for details
## Rows: 27230 Columns: 8
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr  (2): text, source
## dbl  (4): author_id, id, conversation_id, in_reply_to_user_id
## lgl  (1): possibly_sensitive
## dttm (1): created_at
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
ccss_sample
## # A tibble: 500 × 8
##    text            created_at          author_id      id conversation_id source 
##    <chr>           <dttm>                  <dbl>   <dbl>           <dbl> <chr>  
##  1 "@MayorofGM @M… 2021-02-06 14:08:25   1.24e18 1.36e18         1.36e18 Twitte…
##  2 "@Alyssa_Milan… 2021-04-23 03:53:59   1.32e18 1.39e18         1.38e18 Twitte…
##  3 "@KentRatajesk… 2021-05-29 15:19:54   1.01e18 1.40e18         1.40e18 Twitte…
##  4 "Download EBOO… 2021-02-07 23:12:46   1.36e18 1.36e18         1.36e18 Twitte…
##  5 "@hosel_el @Li… 2021-04-18 20:25:51   1.17e18 1.38e18         1.38e18 Twitte…
##  6 "@CoolAssPuppy… 2021-05-20 21:11:04   3.38e 8 1.40e18         1.40e18 Twitte…
##  7 "@_JBSpeaks re… 2021-05-01 06:19:19   9.73e17 1.39e18         1.39e18 Twitte…
##  8 "@greggutfeld … 2021-01-10 17:01:22   1.35e18 1.35e18         1.35e18 Twitte…
##  9 "@hankgreen I … 2021-01-13 19:09:15   1.12e 9 1.35e18         1.35e18 Twitte…
## 10 "@Forrest4Tree… 2021-05-22 18:24:07   7.07e17 1.40e18         1.40e18 Twitte…
## # … with 490 more rows, and 2 more variables: possibly_sensitive <lgl>,
## #   in_reply_to_user_id <dbl>

Note above that we passed our read_csv() output directly to our sample() function rather than saving a new data frame object, passing that to sample_n(), and saving as another data frame object. The power of the %>% pipe!

On to the Dark Side. The {vader} package basically has just one function, vader_df() that does one thing and expects just one column from one frame. He’s very single minded! Let’s give VADER our ccss_sample data frame and include the $ operator to include only the text column containing our tweets.

vader_ccss <- vader_df(ccss_sample$text)
## Warning in tolower(wpe[i]) %in% vaderLexicon$V1: input string ':-Þ' cannot be
## translated to UTF-8, is it valid in 'ANSI_X3.4-1968'?
## Warning in tolower(wpe[i]) %in% vaderLexicon$V1: input string ':Þ' cannot be
## translated to UTF-8, is it valid in 'ANSI_X3.4-1968'?
## Warning in sentiments[i] <- senti_valence(wpe, i, item): number of items to
## replace is not a multiple of replacement length
vader_ccss
##                                                                                                                                                                                                                                                                                                                                                                              text
## 1                                                                                                                                                                                        @MayorofGM @ManUtd @Everton @ManCity @LFC @MetroMayorSteve Whilst it’s great to see common core values shared, there will always be idiots in society, that don’t respect law and order.
## 2                                                                                                                                                                                                                                                           @Alyssa_Milano Huh white supremacist 🤔 the numbers just don't add up... is this common core? https://t.co/GzXiRipA6Z
## 3                                                                                                                                                                                                                        @KentRatajeski @TheBabylonBee This generation shits on your generation -   Common core came in 10 years ago and I’m sure you were already out of college
## 4                                                                                                                                                          Download EBOOK Summer Learning HeadStart, Grade 3 to 4: Fun Activities Plus Math, Reading, and Language Workbooks: Bridge to Success with Common Core Aligned Resources and Workbooks &gt;&gt; https://t.co/EvqueulNA1
## 5                                                                                                                      @hosel_el @LizZezima @streetglide12 @BluePrintDummie @ErinforCT110 @ct_unite @MTnutz @Bold_To_Pray @JohnJam29184340 @MattLesser Don’t bother dude .... read her profile, full stop. Probably a common core supporter so we know the math skills being used
## 6                                                                                                                                                                                                                                                                                                              @CoolAssPuppy @TheSGTJoker The new common core math they teach....
## 7                                                                                                                                                                                                                                                                   @_JBSpeaks regardless of common core pathways, they must do at least 2 foundations art and 1 studio art class
## 8                                                                                                                                                                                                                                                            @greggutfeld Wait till next year Greg, remember "even years" is simpler for the "Common Core" members to figure out.
## 9                                                                                                                                                                                                                                                                                              @hankgreen I would love to see your take on "common core math" who thought that up
## 10                                                                                                                                                                                                                                                       @Forrest4Trees Critical Race is the new Common Core. In two years it’ll be something else, likely Trump Revision Theory.
## 11                                                                                                                                                                                                                             I just learned kids are being taught Common Core Math across the country.. \n\nWhoever created this.. \n\nYou’re an idiot. https://t.co/Fs9H7bGW2i
## 12                                                                                                                                                                                          I guess common core isn't all that great after all. \n\nIf we don't abolish the Federal Department of Education in 50 years we will be in a new dark age. \n\nhttps://t.co/YERWOBJuqR
## 13                                                                                                                                                                                                                                                                                                           @RealMiniAOC Depends on if you use common core math or regular math.
## 14                                                                                                                                                                                                                                                     Ever since the Democrats implemented Common Core Socialist Indoctrination into our Public Schools. https://t.co/btbljE81Ma
## 15                                                                                                                                                                                                                                                                                                                         @alexhern English the “Common Core Math” of languages.
## 16                                                                                                                                                                                                                                           @megynkelly Does the USA have only one Scientist that can give us info? What is this common core hustle we are receiving once again?
## 17                                                                                                                                                                                 So instead of teaching common core, can we teach common sense? It amazes me how many professionals lack common sense when making decisions that impact the lives of 100s or 1000s or a nation!
## 18                                                                                                               @fras99 I hated Common Core being enforced in school with standardized tests. Educators need to understand that people with central processing disorders can still succeed in life despite huge difficulties processing language and figurative abstract speech.
## 19                                                                                                                                                                                                                                                     @Tactical_review ooof. I didn't realize they were teaching common core spelling and comprehension. https://t.co/Hkxwe2bVYe
## 20                                                                                                                                                                                                                      @RubyWeymouth So true! Don’t forget common core math! They are trying to dumb them down, been saying it for years now they sit home no school for a year.
## 21                                                                                                                              Free Kindle:\n⇛ https://t.co/n57QtRmWtX\nFind for 【Summer Learning HeadStart, Grade 7 to 8: Fun Activities Plus Math, Reading, and Language Workbooks: Bridge to Success with Common Core Aligned Resources and Workbooks】 [Read] EBOOK\n▶ by L
## 22                                                                                                                                                                                                                                                                                  The Captain learned about, and despises, the common core math system\nhttps://t.co/cHAjqB3BMB
## 23                                                                                                                                                                                            I'm half way to funding a second monitor for virtual learning! Retweet and help me spread the word. Thank you! ❤️ https://t.co/OzEw9JJAnm #kindnessrocks @KrocksPage @Laura15Edwards
## 24                                                                                                                                                                                                                                   @neontaster Their form of governing is just like the common core math they inflict on our children:  way more complicated than it has to be.
## 25                                                                                                                                                                                                                                      @beth_holbrook8 Been under $2 a gallon until after Inauguration, (1.60-1.80) more 2.49! Not 6 months but your math comes common core math
## 26                                                                                                                                                                                                                                                                                                                           @mattyglesias You went for that and not Common Core?
## 27                                                                                                                                                                                                                      @AaronHa60646169 @michaelmalice This must be Common Core English, because it seems like a painfully long way to say a (fe)male will always be a (fe)male.
## 28                                                                                                                          I know people really hated it, but this is what the Common Core Curriculum tried to do. Parents pushed back because it was not what they did (EXACTLY THE POINT).        So, here we are again 🤷‍♀️\nAmericans love ignorance. https://t.co/RTNFrE9XME
## 29                                           @AlissaHCrook @dianabutlerbass @suehagadorn Common Core, Brainwashing or MK ultra doesn’t constitute learning. It implies indoctrination and selective information which is all part of the dumbing down of society. Children are learning lies not facts in schools. In common core math, children are learning in a Chinese manner
## 30                                                                                                                                                                                                                                                                               Our Common Core!\n#declarationofindependence #constitution #billofrights https://t.co/JUd3Xz4ZTd
## 31                                                                                                                                                                                                                                                                                                                         @j_ducketts @laurenboebert not a common core education
## 32                                                                               @mpershan My fave is all the traditionalists who swear this 25 year trend is driven by the adoption of the Common Core State Standards instead of the other stuff–hollowing out of the middle class; neoliberal economics; zero safety net; etc–very obviously going on. https://t.co/wrB7sDcNNq
## 33                                                                                                                                                                                                                                                                     Playing #APEXLEGENDS right now is like doing common core math 700 damage = 2 kills but 900 damage = 1 kill
## 34                                                                                                                                                                                                                                                                     Also, if you think regular math is hard, try doing common core math, that stuff is literally wild 🙃🙃🙃🙃
## 35                                                                                                                                                                                                                                                                                                                          @PrinceT03 @jbaaaaaby1 Common core math isn’t a thing
## 36                                                                                                                                                    @BuzzPatterson So many depressed children.  Now they are going be at least a year behind. This is sinister just as Common Core. I still have to work because I am an "essential worker" and already suffered through Covid.
## 37                                                                                                                               Address the Common Core Standards while challenging your Ss to think critically about the world w/ @Mathalicious! https://t.co/hayR6WNP61 #math #mathedu #education #engagechat #teaching #kidsdeserveit #teacherlife #crowdfunding #fundraising
## 38                                                                                                                                                                                                                                                                                @PeacefulFiery @johncardillo 😂 too good \n\nhttps://t.co/31hLszkM4w\n\nhttps://t.co/dV3jvdrI1z
## 39                                                                                                                                 Keep in mind I did extensive research, tried to genuinely argue for common core (wasn’t written in a sarcastic way), and it was a fairly well written paper and one of the better ones I wrote in her class. I followed the prompt exactly too
## 40                                                                                                                                                                                                                                                                                   @AngryFleas @Roger37465946 @MulliganBrennan @Slimer2005 @POTUS Must be that common core math
## 41                                                                                                                                                                                                                                                                                          @GovRonDeSantis But, being “the best” at Common Core is actually being the top loser.
## 42                                                                                                                                                                                                            @Mrtdogg No needle AND she didn't push the plunger! "Good for thee, but not for me"!! I've heard Gates children are not vaccinated nor are they taught Common Core.
## 43                                                                                                                                                 Is the other $600 going to the hedge funds losers? What kind of common core math is this? I distinctly remember this #FakePresident saying he would give $2000 as soon as he got in office. #BidenLied https://t.co/zn1xiAHlbt
## 44                                                                                                                                                                                                                                   @JerryWi43722569 @TheVioletOracle @RealCandaceO Same math that gives Biden 80 million votes. \nIt’s like common core. \nBut for dumb people.
## 45                                                                                                                                    @LovestoResearch @cnnross @mj_lee Your clock started yesterday and the numbers will start racking up fast well according to your common core math of counting but until then have a looksie, remember science based https://t.co/2FFNEuruLq
## 46                                                        Biden needs to team up with Mexico (opinion) https://t.co/tBoX8fIhlP\n\n@JorgeGCastaneda Jorge, Jorge, Jorge.\n\nWhat is this  Leftist “roughly 10,000,000” illegal aliens currently in the US bullshit?\n\nPlease tell me you don’t use the same #CommonCore Obama math in Mexico.\n\n#YaleMIT https://t.co/iYmyOQ6F6D
## 47                                                                                                                         Download Mobi Peter Pan (Graphic Revolve: Common Core Editions) &gt;&gt; https://t.co/lb5ZirabA5\n\nPeter Pan (Graphic Revolve: Common Core Editions)  J.M. Barrie &amp;  Fern Cano pdf download\nPeter Pan (Graphic Revolve: Common Core Editions)  J
## 48                                                                                                                                                                                                                                                                        @TravisAllen02 @POTUS 600,000,000+ ???  \n\nHow do you come up with this #\n\nMust be  common core math
## 49                                                                                                             @mattobando88 @McNeelie @cringepolitik @briebriejoy That's common core reading comprehension for ya. Here, since you need me to spell it out for ya.\n\nNo, she wasn't doing being cynical or pointing out anything, she asked because Kamala has Indian ancestry.
## 50                                         @SergioVengeance @RobInKaty @pascanini @_ROB_29 Nope. WE THE PEOPLE want the audits.Stop listening to everything CNN shoves down your throat!!The numbers don’t add up.Tried to dumb down America with common core, but I went to school in the 80s...I can still figure out that the #s of votes to registered voters doesn’t add up.
## 51                                                                                                                                                                                                             Can we all agree that common core math is the most useless fucking bullshit ever?\n\nWhen the fuck am I gonna need to use Exponents in real life after 12th grade?
## 52                                                                                                                                                                                                                                                                                                                                              @MarkDice Common Core failure????
## 53                                                                     @debbieshadow1 🤣🤣I Homeschooled my 9 &amp; 11 year old granddaughters for six months until regrettably my daughter let them go back to public school for the social aspect 🙄 In masks all day. They both struggled with math (common core crap) I have no patience for that silliness. Taught them math
## 54                                                                                                                                                                                                                                                                        @jamesneilrox @Larryferlazzo @jaymctighe 1. Common core is not a curriculum. 2. What /who do you teach?
## 55                                               @DaizeeBuchanan @Savagepalmtree @notawiitch Next time maybe try reading stuff slowly. Ya know, Common Core is what's killing education today. \n\nBTW, 330K of Americans who have died thus far, is still under 1% of population in America. \n\nLast year, 2.9 mil died. This year...? 2.5 mil. This virus isn't that lethal...
## 56                                                                                                                                                                                                                                                               Common core math wasn't enough so now mathematics are racist and show white supremacy. \nhttps://t.co/ROCKee8k74
## 57                                                                            @smitty451 @TheRedMenaceOK @CassandrusB @BerksSports @KevinMKruse Interesting, I’m over 40, from public school but in another country and I learned it the common core way apparently. Not the base 8 part or even the overthinking of it but the system of taking from the next place to the left.
## 58                                                                                                                                                                                                                                                                                                                                       @HillaryClinton 75% is this common core?
## 59                                                                                                                                                                                                      My brother is in 1st grade and he has no business having to learn what it means to "carry the 1"\nCommon core is AWFUL omg  1st graders should NOT know what 46+18 equals
## 60                                                                                                            @laurenboebert That logic speaks to the now defunct NRA TV's near seditious shows telling people to arm to protect against the big bad gov't coming to haul them away in chains, take their guns &amp; maybe even make them learn new math from Common Core. Idiot.
## 61                                                                                                                                                                                                                                                                   EPUB Download Free Grade 3 Test Practice for Common Core (Barron's Core Focus) =&gt; https://t.co/6TWz1p0Liz
## 62                                                                                                                                                                                                                                                                                                                                                @SeanFulce2040 Common Core Math
## 63                                              @Logan_Ratick @seanmdav @chiproytx When Republicans lose control, they generate legislation like this. But when they have control like 2016-2018, they do absolutely nothing but sit back &amp; wallow in the filth of the swamp.\n\nNOT ONE SINGLE BILL TO ELIMINATE #CommonCore.\nNOT ONE SINGLE #BALANCEDBUDGET\nNO #ACAREPEAL
## 64                                                                                @SadeJBanner My son went to school the first year they started common core. There were no books in the system so everything was done on hand outs. Reading a clock with hands was one of the things they lost. We had to teach that skill at home. Now he makes fun of friends who can’t do it.
## 65                                                                        @DonaldJTrumpJr Not my kids, mine is on a homeschool program! Decided common core was for below average educational levels. Also, I can ensure she has true history education not the liberal version of it! Pity that liberals call it white privilege when parents try to obtain better for children?
## 66                                                   @PDfh7gk @rplantejr @uscensusbureau And the census was counted by multiple people and then entered into a machine hell I entered my information into the census online. So unless common core is Part of computer programming I don’t think it has anything to do with the counting of either situation so yes it was a joke
## 67                                                                                                                                                                                                                                                                                                  @tyler It not an assumption, it is fluoride in the water and common core math
## 68                                                                                     Divide and Conquer: An Adult Course in Common Core Division. Step-by-step guide for understanding and applying Common Core division concepts. This course contains videos teaching new ways to divide that students are learning in school today.\nhttps://t.co/W3YWh462d7\n@PhysicsAndAst
## 69                                                                                                                                                                                                                    @stevehillwriter My kid is in 3rd and always has some weird way he's supposed to do math. It's that common core. As far as I can tell your answer is right.
## 70                                                                                                                                                                                                                                                                                 @SparkyPatriot Wasn't it George Bush that pushed common core. Our state no longer teaches that
## 71                                                               Be sure to teach him the truth about the world, not what the Jesuits want him to know in the Common Core Curriculum. Surely there must be a way around being forced to teach false history or mathematics in a way that makes kids stupid.  Keep your child away from Jesuit curriculum. https://t.co/QeFGsvhyos
## 72                                                                                                                                                                                                                                                                   [Download] EBOOK Grammar, Grades 5-6 (Kelley Wingate: Common Core Editions) &gt;&gt; https://t.co/AjNHxudi08
## 73                                                                                                                                                                                                                                                                  If you were actually teachers, you would question how common core stupefies the kids. https://t.co/U9TkMIIkSi
## 74                                                                                                                                                                                                                                                                                                                   @GeorgiaLogCabin This must be some of that common core math.
## 75                                                                                                                                                                                                                                                                                        @dawgster1969 Lol not common core.  I was a math rockstar in hs when things made sense.
## 76                                                                                                                                                                                                                 @WorcTeaParty Check Fed laws like ESSA. Feds CANNOT interfere with local choices like standards (Common Core) or curricula(textbooks)\nhttps://t.co/pqauRy6BSm
## 77                                                                                                                                                                          @KRDONC13 This is why common core does not work. She has no clue what she is talking about or how any of this works. She needs to go back and actually learn about things before she opens her mouth.
## 78                                                                                            I continue to be proud of our staff on our AVID journey!! Each year gets stronger and stronger! Our teachers last day was Monday, yet they quickly engaged in an AVID PD to review and learn  more of 6Cs of Common Core... great growth mindset! #grateful https://t.co/YpmipO4quG
## 79                                                                                                                                                                                                                                                                                                             @heatboss1 They're definitely proof that common core doesn't work.
## 80                                                                                                                                                   Biden's talking amnesty for 11 million + illegals on day 1 and republicans are talking about preparing for 2022?!!  Those 2 things do NOT add up.  I though we got rid of common core math?  #logic is dead #math is broken.
## 81                                                                                                                                                                                                                                                                                  @AJBSaysThings @ZaidJilani But I thought you suggested banning common core was the intrusion.
## 82                                                                                                                                                                                                                                                                                                        @ksorbs It’s NOT ROCKET SCIENCE OR EVEN 4th grade common core math!!!!!
## 83                                                                                                    @divinedre11 If I'm reading it on paper: 20 + 60 = 80. 8 +7 = 15 + 60 = 75.  If I'm doing the match in my head: 28 + 2 (from the 67) = 30 + 65 (remaining) = 75.\nTHIS is why common core teaches DIFFERENT ways to do math! We all learn differently. Btw, I'm 47 yrs old.
## 84                                                                                                                                                                                                                                                                                                         @BreitbartNews just like common core... lets make everyone more stupid
## 85                                                                                                                                                                                                                                                                                                                                                         @bomnyu Bc common core
## 86                                                                                                                                                                                                                                                                                                            @SenGillibrand Is that some common core logic or something Kirsten?
## 87                                                                                                                                                                                                                                                                                                                    @QTRResearch FRAUD 46...TOTAL GLITCH💉😷 COMMON CORE MATH💤
## 88                                                                                                                                                                                                                                                                                                       @catturd2 It’s Common Core Math taught in our Government Public Schools.
## 89                                                                                                              Major Systemic Issues In American Schools\n\n•Funding\n•Class sizes\n•Standardized Testing\n•Poverty\n•Disciplinary Policies\n•Common Core\n•Bullying\n•Student Attitudes and Behaviors\n•Family Factors\n•Parent Involvement\n•Student Health\n•Teacher Salaries
## 90                                                                                                                                                                                                       gads. The uniparty globalist stink is almost over whelming. No wonder she did NOTHING to get rid of common core and bring back American history. https://t.co/JdxwoUD7fo
## 91                                                                                                                                                                                                                                                                                                                     @miniyodadude That's probably why u never took Common Core
## 92                                                                                                           @glam4462 @dyllyp There are still plenty of schools that teach cursive. It’s just not part of Common Core there’s differing perspectives on where it should now fit in curriculum (like when to teach it and why). Where do you think he learned to write like this?
## 93                                                                                                                   @Mlegreen85 @GovChrisSununu @SenatorShaheen @SenatorHassan You’re confusing exceptional brain vs qualified to teach the numerous subjects. Or do you forget how much parents complained they didn’t understand common core that was partly developed at MIT?
## 94                                                                                                                                                                                                    @Susan_C1964 Yeah definitely seems like common core 😂 \nif there is a personal foul on either team I believe it upsets the rest the penalties but they need to change that
## 95                                                                                                                                                                           @arneduncan This is a real bold statement coming from the guy who insisted common core was a great way to educate kids despite being warned how standardizing everything was a fucking terrible idea
## 96                                                                                                                                                                                                                                                                                  @SouthXNorthWest @hankgreen By current, I mean common core based, with lots of visual models.
## 97                                                                                                                                                                                                                                                                                                                 You guys using common core math or sm? https://t.co/rsI0LmGISB
## 98                                                                                                                                                            @jwilliam3375 @catturd2 Poor Jay.  You must have been taught common core math.  We know it takes longer than traditional math, it's ok.  You will eventually get to the end of the math problem you are working on.
## 99                                                                                                                                                                                                                                                                       @MsAvaArmstrong Pearson Pub, common core...look it up. Obama set them up the got a sweet book deal. hmmm
## 100                                                                                                                                                                                                                                                                                                                                                    @catturd2 Common Core math
## 101                                                                                                                                                                                                                                                  @F1eldsOfDreams @FDSportsbook @br_betting 12:00-9:00 is 180 seconds or 3 minutes, y’all common core math got your brain mush
## 102                                                                                                                                                                                                                                                                 [Read] EPUB Common Core Basics, Reading Core Subject Module (Ccss for Adult Ed) =&gt; https://t.co/uIz9yITshk
## 103                                                                                                                                                                                                                                                           @needabetternam3 I’m pissed trump didn’t remove common core like he claimed. Like that would have been dope as fuck
## 104                                                                                                                                                                                                                                                            @danvrs_ A common core of all your achievements is failure... The only failure is giving up\n-12 monkeys TV series
## 105                                                                                                                               @KnowingBetterYT A smart teacher or principal would recognize this as a bad faith question and say that their school provides the best possible education to all students in accordance with the state/district/common core/whatever standards.
## 106                                                                                                                                                                                                                                                        @KasthuriShankar @JustinTrudeau A week behind everybody else = leading by example.\nUh-huh.\nMust be common core math.
## 107                                                                                                                                                                                           I wonder how much of this stems (pardon the pun) from a Common Core problem. Like, is common core making more kids fall short and exacerbating differences? https://t.co/sXnH4Mx4EY
## 108                                                                                                                                                                                                                                                         I understand the intent behind common core math.  But it’s absolutely asinine to try to implement it with 1st graders
## 109                                                                                                                                                                                                @DanShenise @DrVirgo1981 @divinedre11 Weird. This is exactly how I solve it and have hated trying to help my 5th grader with common core equivalents. Maybe I'm just a donkey.
## 110                                                                                                                                                                                                                                                                           @mypinkbicycle @Jim_Jordan Your grammar gave me a stroke.  Common core really doing wonders, I see.
## 111                                                                                     I wrote an article two weeks ago about what an asshole Bill Gates is and how he single-handedly ruined America's educational system with CRT programs and Common Core. He has also ruined global health programs. And buys off media outlets in secret.\n\nRead:\nhttps://t.co/VTWoghS7BH
## 112                                                                                                                                                                                                                                                                                                           Did @POTUS  just fail at basic math.. he got that fresh #commoncore
## 113                                                                                                                                                                                                                                                                                                                @KDKA Does that mean we dont have to teach common core math???
## 114                                                                                                                                         @newsmax\nThe federal government received an estimated $3.71 trillion in tax revenue during 2020. The Green New Deal would cost $93 trillion. Was Joe using Common Core math when he said the GND would pay for itself? - Rep Boebert
## 115                                                                                        Dear #teachers + #educators, did you know that ITCH has a teacher's guide?  And common core activities on my website focusing on setting and POV? And a link to a PBS documentary about Ted Fujita, tornado scientist???  #mglit\n\nhttps://t.co/R2RN2q1j7d\n\nhttps://t.co/7NYJ543jOf
## 116                                                                                                                                                                       CVC Phonics Word Houses | Consonant, Vowel, Consonant Sounds | Phonics Worksheet | Grades K-1 | No Preparation Packet | Common Core Aligned by Cameron Frank Products for $1.97 https://t.co/apMW8ArKex
## 117                                                                                                                                                                                                                                                                            @pontificatormax @HonorAndDaring Seems like the folks in GA. don't know how to count. Common core?
## 118                                                                                                                                                                                   @thehill 20% of white males voted for Biden and somehow he received 83 million votes? Your math is a little fuzzy there, Captain. Is that common core  math or pathetic partisan hack math?
## 119                                                                                                                                                                                                                    @Redpatriot13 @RationalWins @tracybeanz He's not rational, despite his handle &amp; his knowledge, likely was derived from a public Common Core education.
## 120                                                                     @KateTheSaboteur @clarewenham Quite telling since coins (and their value) aren’t taught in the Common Core until the middle of kindergarten. If we’re to give the benefit of the doubt and believe the kid said this, it’s probably because the kid overheard the parents discussing/arguing about money.
## 121                                                                                                                                                                                                                                                                                                                             @MarketWatch Because they teach common core Math.
## 122                                                                                                                                                                                                                            i like when people think i'm smart \nbut i'm dumb, so i won't add sums up anymore \nand i barely even care that i'm forgetting all the common core
## 123                                                                                                                                                                                                   [Download] PDF Common Core English Workbook: Grade 8 English -&gt; https://t.co/2BoyQ0LYZl] PDF Common Core English Workbook: Grade 8 English -&gt; https://t.co/GFq0iwdsJd
## 124                                                                                                                                                                                                                                                        @GGlocksX @CoachEdBoyce This must be that common core math that Cuomo likes to push on all New York schools \U{01f92a}
## 125                                                                                                                                                                                                                                                                                                                             Cries in Common Core Math https://t.co/t5UaOl59gC
## 126                                                                                                                              Download Mobi Grade 5 Test Practice for Common Core (Barron's Core Focus) -&gt; https://t.co/vKgEvrJPe3\n\nGrade 5 Test Practice for Common Core (Barron's Core Focus) Lisa M Hall pdf download\nGrade 5 Test Practice for Common Core (Barron's
## 127                                                                                                                                                                                                                                                             @calistevenj Common core educ. dictated not  teaching kids cursive writing, just dumb 🐂💩irrelevant to anything.
## 128                                                                                                                                                                                                                                                                                                                        @johnnyrwhitsett @INFJLOVE Common core math. 2+2=5 lol
## 129                                                                                                                                                                                                                                                        Carrying the 1 seems just so intuitive to me....what the hell are they teaching in common core https://t.co/CUgYg2iAJO
## 130                                                                          @against_kim The easiest way to do 11.14 - 3.87 is \n.13+7.00+.14\nBut the old way is to only teach The One True Way for about 10 years. Counting Up Subtraction is not the only method taught in common core. It’s one of many. I’m happy if it’s taught early and often as math gets more complex.
## 131                                                                                                                                                                                      @fit__feminist Sitting by my son during virtual learning is where I discovered that my brain—this whole time—has been using common core steps when breaking down a problem in my head. ❤️
## 132                                                                                                                                                                                                                                                                                                                                     Common core math. https://t.co/IGLbd4etKT
## 133                                                                                             @TheNewRight Hows (1960's) Urban Renewal doing in Detroit, Camden....?\n\nHow's JFK's school Fitness doing? Seen the blivit kids?\n\nRobert Kennedys Appalachia poverty programs?\nLBJ.....to HW BushPoints of Lights....G W Bush home ownership, Common Core...\n\nAre you nuts?
## 134                                                                                                                                                                                                                                                                                                                          @MinistryofTru16 @EconCircus Common core at its best
## 135                                                                                                                                                                                                                                                        @BuzzPatterson are the Mr. Potato Head and Dr. Seuss deniers the same ones who think Common Core math is a good thing?
## 136                                                                                                              im old enough that i was taught to "carry the 1" in math class, but it made math so much harder for me to understand. i ended up teaching myself the common core method without knowing that's what it was, because it felt way more natural and intuitive to me
## 137                                                                                                                                                                            So she was confused and thinking of Little Rock Mills, TN. Aren’t we playing Common Core #MoreOnTrivia  @PatUnleashed @KeithMalinak @JeffyJFR #PatHeads #PutThatInYourPipe https://t.co/NkX7QY8vJW
## 138                                                                                                                                                                                                                I blame common core math-taking the longest way possible to get to the exact same result. Seems to be a theme. https://t.co/ywtGMjhs7e https://t.co/yOlLzMyikc
## 139                                                                                                                                                                                                                                                                           Read Free Grade 5 Test Practice for Common Core (Barron's Core Focus) -&gt; https://t.co/kXnVdWOS3i
## 140                                                                                                                                                                                                                           @GholdyM: Who wrote the common core standards? Who wrote the curriculums you're using? Who created the assessments? What do those people look like?
## 141                                                                                                                                                          The Common Core spelling of a standard English word, as counted by Common Core math?\n\n(Yes, yes, I get it. Just look at it for a sec and you will too. But the temptation was too strong.) https://t.co/QSpC06KuRy
## 142                                                                                                                                                                                                                                                                                                                                     Common core math. https://t.co/uWh9hiIsdA
## 143                                                                                                                                                          @bnhowe He has an incredibly difficult job convincing me that he’s not going to trash public education. As a parent and as a teacher, I hate everything about common core and he was one of the biggest cheerleaders
## 144                                                                                                                                                                                                                                         @Quityoyellin @GarnerVideoPros Oh yes, I forgot! Common core is racist, even though Dems pushed it into schools in the first place...
## 145                                                                                                                                                                                                                                                                               @850Sunny NO AGENDA or ideology in ANY standards like Common Core. You must refer to classwork.
## 146                                                                                                                                                                                                                                                                             @ChuckSoltys Common core like critical race theory is there to destroy America not make it better
## 147                                                                                                                                                                                                          @leadlagreport Schools teach common core now where they don't teach anything for life at all now I mean they don't even teach them cursive nor how to tell time. Smh
## 148                                                                                                                                                                                                                                           Yep.  131 Million Registered Voters cast 155 Million Ballots.  This Common Core Math can Justify Everything https://t.co/7JXhN6HGII
## 149                                                                                                                                                                                                                                                                                                                @JonGordon11 FREEDOM! Our Common Core! https://t.co/BW2AYvDgyn
## 150                                                                                                                                                                                                                                                                                                                                      @dougboneparth Is this common core math?
## 151                                                                                                                                                                                                                                                                           @paulsperry_ @FormallyGeneva The one positive is students are getting less exposure to common core.
## 152                                                                                                                                                                                                                      @chrislhayes @JohnJHarwood Crazy that Biden received over 81 million votes.  In common core math, that’s more than 74 million.  They never mention that.
## 153                                                                                                                                                                                                                                                     @SethMacFarlane This will get as much hate from the right as Common Core did. Because your algebra ain't like my algebra.
## 154                                                                           @KlMMCHlE It’s the common core thing. So anyone that was taught before common core will do it the pemdas first gen way most likely. Anyone after will be taught pemdas first left to right way. \n\nI only say this bc I see it ooc with mum teaching pemdas to my siblings but can’t cuz different
## 155                                                                                                                                                                                                                                                                                        You think I’m creative?? I’m a product of the common core school system, try again smh
## 156                                                                                                                                                                                                                                                                                                                @PerspicaciousXY He gave us common core. He should be in jail.
## 157                                                                                                                                                                                                                            i like when people think i'm smart \nbut i'm dumb, so i won't add sums up anymore \nand i barely even care that i'm forgetting all the common core
## 158                                                                                                  Education system was broken  before pandemic. The result kids not doing well in school during pandemic. Its more than virtual its in person too! Why? Bad .reading and math curriculum? Common core explains, trouble high school? Reading below grade level?  #WestVirginia
## 159                                                                                                                                                                                                        [Download] Mobi 8th Grade Common Core Math: Daily Practice Workbook | 1000+ Practice Questions and Video Explanations | Argo Brothers &gt;&gt; https://t.co/QLFZ52QW64
## 160                                                                                                                                                                                       Remotely achieved lobotomy?\n\nFacebook, chemical, frequency, cern, common core edu, witchcraft, chronic oxygen deprivation...mix &amp; match have fun with it. https://t.co/M4nLtkh2hJ
## 161                                                                                                                               @Othoforaugustus @Hjemmefronten16 I heard an issue with common core English is it's emphasis on non-fiction &amp; much less on fiction. Might explain some of the responses on here on why some disliked this book &amp;  took it so literally.
## 162                                                                                                                                                                                                                                                                    Apple Shouldn't Fall Far from Common Core #Cheapest #Jekkle #Textbooks #University https://t.co/ZbbiZOa3nG
## 163                                                                                                                                                                                                                                                                                                                              Must be Common Core math https://t.co/kxCiU97Db2
## 164                                                                      @DrSarahLupo @ScottGeisler12 Lol, no. I don't admit to knowing how the term literacy objective first means in this context. Objectives, as in discreet common-core lists of supposed essentials, promotes a reverse-engineering style of teaching that often sinks rather than floats the literacy boat.
## 165                                                                                                              @USATODAY At one time, American students were required to read and debate, write about this book to get a high school diploma. Your mealy mouthed tweet intended for whom? Immigrants not educated in our system, or GenZ subjected to common core brainwashing?
## 166                                                                                                                                  Considering they think common core is a thing, it's not wonder they don't get it.\nTheir brains are complete mush and now that they have been wearing masks for a year? They have become completely brain dead 🤦🏻‍♀️ https://t.co/8FsiA4NlSA
## 167                                                                                                                                                                                                   Key reflections and timely lessons about how to cover a major policy initiative (like, say, the ARP).\n\nNew from @tomloveless99 via @thegrade_ \n\nhttps://t.co/fn9pewlWSN
## 168                                                                                                                                                                                                                                                                                                                                               @TheDonSweeney Common core math
## 169                                                                                                                                                                                                                                                                                                                                             @laney_tr @BrockPaul6 Common core
## 170                                                                                                                                                                                                                                                                                                                                 Damn common core math https://t.co/oTKJLedHr9
## 171                                                                                                                                                                  @RealMattCouch Youd think that the fact that the strictest mask states, such as NY and California have the highest virus cases would show them something. I guess that's why they invented common core math.
## 172                                                                           Our children are being brainwashed to march to New World Orders through Global ed/Common Core as per my testimony/experience working under Ed Secretaries Bill Bennet and Lamar Alexander. History has been rewritten to undermine our Constitution https://t.co/4RkxIqeFPp https://t.co/5XA8hC4LHj
## 173                                                                                                                                                                     @maddow Are u counting the 70 million Americans that voted for Trump, and would vote for him again?  That equates to more than 50% approval rating of Trump. Are you doing real math or Common Core math?
## 174                                                                                                                                                                                                                                                                                                                                 @NickAdamsinUSA They do like common core math
## 175                                                                                                                                                                                                                                                                                       Have #Common-Core Standards ruined our children's #handwriting? https://t.co/KGjSwVIJW9
## 176                                               @Gattonbj @IngrahamAngle @mercnews That is the goal of the left. Read Saul Alinsky’s “rules for radicals”. This is exactly in the playbook. Make American education inferior to the rest of the world. It was the purpose of common core. \n\nNow keep them out of school so they’re not learning.\n\nBut homeschool is rising.
## 177                                                                                                                          A3: @CommonSenseEd Teaches skills and habits of mind for students and families.  Trust worthy information, education, and voice needed to thrive in the 21st century. Aligns with education standards: Common Core (ELA), ISTE, CASEL. #AppleEDUchat
## 178                                                                                                                                                                                                                                                                        @clay_mcch Nope but neither does the vote count so get ready to use common core math from here on out.
## 179                                                                                                                                                                                                                                                                                                                                            @FerrariERA @ABC Common core math.
## 180                                                                                                                                                                                                                                                                                                                      @giselefetterman Was going to blame Common Core but WUT?
## 181                                                                                                                                                                                                                                      @scott_satzer @march4progress @laughingcat2016 Schools are publicly funded daycare centers, and common core is the (license) curriculum.
## 182                                                                     @CommonSenseEd @BethFisherIFT Ever wanted to show your students how to follow arrow directions by dragging an icon? Originally designed for kindergartners, this lesson can be adapted for any grade level.\n\n#commoncore #technology #directions #googleslides #kindergarten\n\nhttps://t.co/Y8mCfJYT0h
## 183                                                                                                                                                                                                                                                       @hwestonbull_hhh @miranda_lolly @KlasfeldReports @UROCKlive1 Idk coming across things like this https://t.co/UMImTrYKLH
## 184                                                                                                                                                                                                 @johnpavlovitz @tedcruz Earth calling. He didn't. Dominion and foreign entities helped him cheat. The whole world was watching. This is reality not a common core math class.
## 185                                                                                       @Justin18928879 @cary767 @goodolecharlie @STwohands @GOPLeader Have you seen what they are mandating with the common core?  Stop with they don't care about education.  Where are the parents?  Personal responsibility goes a long way.  Parents should demand better FROM THEIR KIDS!
## 186                                                                                                                    Why did Common Core fail? Top-down standards don't improve achievement. What counts is curriculum, teaching. https://t.co/mMHfaZRNxq\n\n@tomloveless99 @rickhess99 @MichaelPetrilli @EducationNext @educationgadfly @RealClearEd @eduwonk @The74 @edu_post
## 187                                                                                                                                      @morganisawizard It would make your post more valid if you would learn proper grammar and sentence structure.  Then people might be able to determine what you are attempting to convey.\nAnother FAIL for common core public education.
## 188                                                                                                                                                                                                                           @LinkedIn @BaronDavis Common core math is going to make financial literacy unobtainable with its brain teasers that have zero real life situations!
## 189                                                                                                                                                                                                                                                                                                                                                   Common Core m@th is raci$t.
## 190                                                                                                                                                                                                                                                                                                 This must be that common core math y’all hate so much https://t.co/2WUC6t99Yc
## 191                                                                                                                                                                                                                      @NealMcCluskey Arguably, Common Core provided the blueprint for how the feds could establish shadow control over nominally decentralized school systems.
## 192                                                                                                                                                                                                                                                                                                                Common core equation for 2021: CBS=DNC https://t.co/QESZMXfXkl
## 193                                                                                                                                    Also to be clear, I know very little about New Math, and all I know about Common Core is that whenever I've seen a video trying to dunk on it, they're missing the point entirely, so perhaps there's not even a You're Wrong About there.
## 194                                                                                                                                                                                                                                                                                                                 @EWErickson Thanks to common core, my kids can’t add properly
## 195                                                                                                                                                                                                                                                                                                                              @essenviews They’ll blame it on Common Core math
## 196                                                                                                                                                                                                                                                                                                                                 i hate the common core i hate the common core
## 197                                                                                                                                                                                                                                                                                                      @VFM0168 @MartinDiller @JackPosobiec @spamitall Common core!! Nuff said!
## 198                                                                                                                                                                                                   @Whaka_yea @MeOwOser Bruh hold up I need a time machine gotta help child me from being terrible at math\nsadly I don't know if this trick'll work now with common core math
## 199                                                                                                                                                                                                                                                                              @Dr_Armstrong https://t.co/kdLPayZ59O\n\nLet's reflect on this friends...does it sound familiar?
## 200                                                            Common Core is not the problem.\nCommon Core is not the solution.\nFailure to teach learning skills is a problem. \nFailure to give students agency is a problem.\nFailure to prepare teachers to teach and reinforce learning skills with content is a problem. \nAnswer: Paradigm Change https://t.co/j5ID7PJyto
## 201                                                                                                                                                                                                                                                                                                                         Common sense. Not Common Core https://t.co/I1ocugVQ6h
## 202                                                                                                                                                                      That's a lot stupid in such a small package.. I'd say impeach her but blatantly lying all the time is no longer a crime..Yay for common core education.. https://t.co/HC44PJTCae https://t.co/mZJ1HzCn1P
## 203                                                                                                                                                                                                                                                                      #STEM #CommonCore can’t even challenge a Carpenters😇 #Math shall we do round 3? https://t.co/TfvHjd2RYZ
## 204                                                                                                   @keddiejoh @DefendingEd There are wonderful, caring teachers out there. But it's the rare system that truly supports them. Overwhelming testing, metrics to be determined, numbers, benchmarks, documentation, class sizes, rigid structure. Common Core, not common sense.
## 205                                                                                                                                                                                                                                                                   I remember learning emotions in Kindergarten. Is that no longer in the Common Core? https://t.co/9FD6N2ZA3c
## 206                                                                                                                                                                                                                                                                            @Boojahideen Maybe he's our next messiah. He did work for the last one.\n\nhttps://t.co/t8amx4MZJS
## 207                                                                                                                 @FlashToso @CNBC @kaylatausche How is it fair when they say you can only have this money if you do a, b, c, and d. No state testing means no money, no common core means no money. Schools should not be manipulated to get the money they need for students.
## 208                                                                                                                                                                                                                                 I was today years old when I found out in 2010 cursive writing was dropped as a requirement in Common Core. Thoughts? https://t.co/xAW6Jtd5CS
## 209                                                                                                                                                                                                                                                                                                                   common core is literally the stupidest thing ever oh my god
## 210                                                                                                                                                                      About 400 participants in the ongoing nationwide training workshop on the Common Core Program Curriculum being introduced by the Ghana Education Service (GES) have boycotted... https://t.co/eF4MZP2V1I
## 211                                                                                                                                                                                                                                                                                 ⚘ PDF Download Free Math Common Core Algebra 1 - 9th Grade -&gt; https://t.co/bqpwL2HP2R\n\nღ
## 212                                                                                                                                                                                                                                               @CalamitousZen @kimmytheazn Look, I’ve always been great at math and this common core mess still confuses the crap out of me 😂
## 213                                                                                                                  Common Core math is still breaking my brain at times, but at least the kid is starting to understand the "Mom and Dad" method. I'm still trying to teach him Common Core too. Trying to learn some CC methods before his test tomorrow to help w/ reviewing.
## 214                                                                                                                                                                                                                                                                                   Example of common core education\n👇👇 Society has been dumbed down https://t.co/bjoviPf15d
## 215                                                                                                                                                 @IrishTea1 He isn't a doctor.  He wasn't a teacher when he pushed the failed Common Core curriculum.  He's not a climatologist as he pushes dimming the sun.  He's just an old guy with too much money and time on his hands.
## 216                                                                                                                                                                                                                                                                                                    @lincolnspeedway How does 2 weeks equal 21 days? Must be common core math.
## 217                                                                                                                                                                                                                                                                     @nicolealicerose @bradbatt @GOP Yep. Common core math is actually quite a good strategy to do math. 🤦🏻‍♀️
## 218                                                                                                                                                                         The common core is a meal kit, not a 'nothingburger,' argues @carolinecdamon, Senior Program Officer at @CEF4WCC, responding to @rickhess99 in today's @EdWeekOpinion column. https://t.co/oUBXE0W022
## 219                                                                                                                                                                                                                                                                          @thomaschattwill #CommonCore That sh*t should be banned too. The dumbing down of America’s children.
## 220                                                                                                @ThatYuta I think this is a bit of a learners bias as you’re learning mostly the common/core conversational English.\n\nAs your knowledge gets deeper I think you’ll find them similar.\n\nI find Japanese more direct and less nuanced, especially kanji to limit meanings...
## 221                                                                                                                                        @CJPL30203 @Brooklyn__Girl @kpbnews @cherylkanere @RodneyH31224320 @BarbieWoodside @im0ver1t2u @Arkydiva @YooNeverNo @ScrewedHumans @ajc2180 @ActualUxorial If you can show your work in common core style I can except your theory 😂
## 222                                             @ResistanceBlue1 @HamiltonHammi @Rosemarie4311 @Marcus4Georgia You raised on Common Core Syllabus Math?\n\nHillary Rodham Clinton\nBDay\nOctober 26th, 1947\nCollege Thesis 1969\n\n  1969\n- 1947 =\n     22 @ College Graduation\n\nThe Lost Generation and has Internet..\n\nI have mechanics tools older than you. \U{01f9d0}
## 223                                                                                                                                                                                                                                                 Only in the @VAVetBenefits system does 50, 40, 30, 10, ,10, 10, 10 equal 87. Common core math was invented by the government.
## 224                                                                                                                                                                                                                                                            @johncardillo Using common core math:  How many sheets of paper would it take to figure out they are the same?? 🤔
## 225                                                                                                                                                                                                                                                                                                                        Thats Common Core math for you https://t.co/KGI9UJ2ow8
## 226                                                                                                                                                                                                                                                          Teacher Created Resources Nonfiction Reading Comprehension for the Common Core Book, Grade 4 https://t.co/s6DzRVgicv
## 227                                                                                                                                                                                                                                                                                                             Common core math vs actual math🤣🤣🤣🤣🤣 https://t.co/P0LJUR49SY
## 228                                                                                                                                                                                                                                                                                                                     @mikewhelanjr That common core math in action right there
## 229                                                                                                                                                                                                                                                   @hppyjesusfreak @SidneyPowell1 @WPatriot2 @ftmfanatic @annvandersteel @edwrather @JoeBiden @POTUS Common Core math at work.
## 230                                                                                                                                                                                                                                                                                        Common Core, Still in Place, Nationalized Educational Quackery https://t.co/1FN6We4fpu
## 231                                                                                                                                                                                                                        If you have children within the Iowa Public School System, check out the Iowa Common Core online to understand why they learn what they learn✌️ #unietd
## 232                                                                                                                                                                                                                                                                              Can someone explain this math... is enbridge using common core equations https://t.co/5SDZOTHkPd
## 233                                                                                                                                                                                                                                                                                                               I think this is that “common core” math https://t.co/Q3tFlPdDNE
## 234                                                                                                                                                                                                                                       Fear of Flying's Common Core. Psychology Today https://t.co/7nMRyt4YuC RT travel  #airlines #IARTG #book travel https://t.co/AqV3aCp8Ba
## 235                                                                                                                                                                                                                                                                                                                        @DanielleONeil_ @jjoneil3 Common core is not the best.
## 236                                                                                                                                                                                @CarlaRK3 @NedLamont Fully fund public schools instead! Get rid of corporate interference in our schools. Education and opportunities will improve. Common Core is designed to hold kids back.
## 237                                                                                                                                                                                                                                                                      @adegbenro61 @JonathanTurley Unpopular to 28%.\n\nMost popular to 72% \n\n'unpopular' = common core math
## 238                                                                                                                                                                                                                                                                                                                              @kesparros @WWLTV Common core Math at its finest
## 239                                                                                                                                    "i hear your concerns mrs. karen, but common core standard CCSS.ELA-LITERACY.RH.6-8.8 states that students must be able to distinguish among fact, opinion, and reasoned judgment in a text, and that is the objective of the assignment!"
## 240                                                                                          We support the transition from 5th to 6th grade with your #CommonCore or #AdvancedPlacement track in mind!\n\nSpend your #Summer preparing for your new academic adventure! \n\nEnroll by 05/31 for $100 OFF 📚☀️\n\n(858)800-4284 // https://t.co/qMbbWfA8o2 https://t.co/6t0P0GUYq9
## 241                                                                                                                                                    i play jumpstart, but math's hard\nand i can't stand learning anything\n i like when grown-ups call me smart\nbut i'm dumb, so i won't add sums up anymore\nand i barely even care that i'm forgetting all the common core
## 242                                                                                                                                                                                                                                          @connerwilliamsx @azdemparty @POTUS Speech? Dude can’t string a sentence together, must be that common core English you were taught.
## 243                                                                                                                                                                 Stop summer slide! Stay summer smart! this Common Core–aligned workbook will get you back-to-school ready for the other grade, with hundreds of fun activities, exercises, and games. https://t.co/rmO2MpeQxD
## 244                                                                                                                                                                    @NCFranklin @TonyAggie @redadvisor2 @carpemyperdiem I think it is branch dependent. FACCC covers nothing for battery command. After common core, it is FS planning, FA BN staff planning, then a mini WFX.
## 245                                                                                                      @CNNPolitics McConnell and the GOP destroyed public education in America with Test-Based/Teacher-Punishing/Anti-Union/ No Child Left Behind Propaganda.  There is no justification for Common Core (Damn, Obama?)  or so much JESUS in the classrooms of Public Schools.
## 246                                                                                                                                                                                                                                                @BoogerLeader @IdkImean @MalloryGates14 @MikeMooreDO Common Core math is not for parents and professionals. It's for children.
## 247                         @benblack1234 @Rians_Hopeless @MalloryGates14 @MikeMooreDO All the people complaining about common core were made fun of for their way of learning math. The old method, before both new methods, was great when dealing with bases other than ten. How often does it come up IRL? Mostly never. Be more open minded y'all\n\nhttps://t.co/ZHtPCSzjm2
## 248                                                                                                                                                                                                                                                                                           @DonnaVann14 @CawthornforNC That new “common core” math must be doing it’s job well
## 249                                                                                                                                                                                                                                                                                                                                                    @catturd2 Common core math
## 250                                                                                                                                                                                                “Replacing Common Core with a different set of standards will solve very little. The United States cannot regulate its way to educational excellence.” https://t.co/M7bu4fPlBg
## 251                                                                                                                                                                                                                                                                                                @lulurickman @CodeMonkeyZ They use Common Core math to count votes in Georgia.
## 252                                                                                      FREE RESOURCE | Introduce children to consonant blends and word endings in a fun way with this free race track activity!\n\nDownload/print/share it here: https://t.co/nJoJm8TnZq\n\nCommon Core alignment: CCSS.ELA-LITERACY.RF.1.2.B \n\n#phonics #elateachers https://t.co/wh7W7kwyxK
## 253                                                                                                                                                                                                                                                                                                                              @ArevFTW @DJMC25 @planetjared Cancel Common Core
## 254                                                                                                                                      Sadly this person has been a thorn to repeal Common Core..it hasn't been fuzzy for a lot of kids because of Common Core Collins #alpolitics God watches over children and is not mocked. https://t.co/JbkJMCuNyn https://t.co/uunlIidHhC
## 255                                                                                                                                      @williamdoylenyc @leoniehaimson @MikeHynes5 @DianeRavitch @pasi_sahlberg I know how Gates can help schools. Stay out of them.\n\nCommon Core was decade long failure.\n\n"Reimagine" Education is far more epic disaster and trainwreck.
## 256                                                                                                                                                                                                                                                    @MrWestOPE @superdjromeo @BA_VAWL @ClayTravis Critical Race Theory and Common Core weren’t a thing when I was in school 🤔
## 257                                                                                                                                                                                                                                                              @jonathanstea #MedicMathNightmares Number sense &gt;&gt; formulaic figures (poorly taught common core) every day
## 258                                                                                #CommonCore math problems. Seriously, there is no right or wrong answer in Common Core #math. Looking forward to @FLOTUS in the WH &amp; a real @usedgov. We’re constitutionally forbidden from a national curriculum (prevents indoctrination), but real advice soon! https://t.co/bopko1HJA8
## 259                                                                                                                                                                                                                                        @US_SOCEUR @352SOW @USArmyEURAF @US_EUCOM You all must have went to public schools. Bill Gates common core really did a number on you.
## 260                                                                                                                                                                    @tedlieu 1.8 million Absentee ballots sent out in Pennsylvania. \n1.4 million absentee ballots "returned".\n2.5 million absentee ballots counted. \n\nCommon Core Math has failed you. You know the truth.
## 261                                                                                         "What sets enVision apart is its ... problem-based and visual learning to help Ss develop deep conceptual understanding of mathematics."\n\nAnyone familiar with enVision, please comment.\n\nhttps://t.co/CUEGORCxKw\n@manateespirit @sandstorms @KansasisinCalif @mayak46 @rcraigen
## 262                                                                                                                        @J_cksonBecker @TheClassicalCon Common Core is only the standards for English &amp; math. Most CC complaints are not about standards but classwork, subjects other than math &amp; English, textbook issues, GOV mandates, local choices, testing etc.
## 263                                                                                  @KarlWaelder @rachbarnhart Read ESSA. Where do you think the requirements of standardized testing and standards come from? The state standards are just common core tweaked slightly to call them state. Special Education and ESOL requirements are federal laws and Supreme Court rulings.
## 264                                                                                                                                                                                                                                                                                                         @DonnaVann14 @CawthornforNC She must have took that common core crap!
## 265                                                                                                                                                                                                                                                                                                           @corrouchies I actually am! I love the common core math methods 😂.
## 266                                                                                                                                                                                                                                                                                                                                          @catturd2 They took common core math
## 267                                                                                                                                                                                                                            i like when people think i'm smart \nbut i'm dumb, so i won't add sums up anymore \nand i barely even care that i'm forgetting all the common core
## 268                                                                                                                                                                                       New post from https://t.co/9KYxtdZjkl (Oracle Banking Virtual Account Management 14.1.0/14.3.0/14.4.0 Common Core information disclosure) has been published on https://t.co/q6wFbC3vch
## 269                                                                                                                                                                       CVC Phonics Word Houses | Consonant, Vowel, Consonant Sounds | Phonics Worksheet | Grades K-1 | No Preparation Packet | Common Core Aligned by Cameron Frank Products for $1.97 https://t.co/apMW8ArKex
## 270                                                                                                                                                                                                                                                                                                                          @Hupperware @jprutherford Is that common core? #math
## 271                                                                                                                                                                                                                                                                                                                 @halvybuckets @BooGravy @kristenschaaled Common core College?
## 272                                                                                                                                                                                                                                                                                                             @lynnshon Time to kill common core not Black and indigenous folx.
## 273                                                                                                                                                         @readtheroom2 @l0coj1 @Miles12287 @EWErickson A. There are ONLY 2 answers to a math problem: right or wrong\nB. You’re describing the common core teaching model &amp; as awful as that is, even it, is not “racist”.
## 274                                                                                                            @NYCMayor @NYCSchools Bro stop! NYC DOE is a joke! The Common Core is trash, built by the majority of people that have never been in a classroom. I sure hope @DrBiden is able to completely dismantle it, because we need to do better for teachers and students!
## 275                                                                                                                                                                                                    @Plucknpick1 @kmjames66 @tedcruz Common Core promotes exploring different views, even if controversial that GOP seems to frown on as crushing their own freedom of speech.
## 276                                                                                                                                                    @DebbyNYC @liftupkids777 @DianeRavitch @KarenMedana @CurriculumMatrs @jmann_edu @GeorgeWhittenES Not educational experts. Common Core was put together by people with literally no background in early childhood learning.
## 277                                                                                                                                                                                                                                                            @miniyodadude Ur not supposed to distribute. Is there some Common Core thing that u learned that I'm missing here?
## 278                                                                                                                                                                                                                                                                                                                                       @tollcollection Can you say common core
## 279                                                              Divide and Conquer: An Adult Course in Common Core Division. Step-by-step guide for understanding and applying Common Core division concepts. This course contains videos teaching new ways to divide that students are learning in school today.\nhttps://t.co/W3YWh4nD4F\n@nasahqphoto https://t.co/48xS57Hi5v
## 280               @Joop72811957 @real_like_steel @wwefan12445 @Ahmad95679601 @JonnyBones Well as far as freedom of the press you can thank Twitter and Facebook for that. Along with the new wave liberal indoctrination adopted by European influence. Education has also adopted common core math. So as far as ranking number 1 our current societal pushes could affect alot.
## 281                                                                                                                                                                                                                           @RichardGrenell First generation of kids with 12 years of common core indoctrination..but hey Bill Gates kind of apologized https://t.co/GWdYgJPQC6
## 282                                                                                                                                                                                                                               @NebraskaMegan Sounds like senator Hunt should remove Common Core Math from our education system or accept the math as correct as he tried hard
## 283                                                                                                                           @disneyglimpses @arthurstacy @WDWNT You can fix dumb, but you can't fix stupid.\n\nFlorida's minimum wage is $8.56/hour. \n\nDisney's wage floor is $15/hour.\n\nMan common core math is really fucking up people's understanding of math operators
## 284                                                                                                                                                                                                                                                                                                     @BreitbartNews @rising_serpent Is this Common Core ERithmetic? \U{01f92a}
## 285                                                                                                                                                          @shawgerald4 @realDonaldTrump Common core math was introduced so that one day democrat voters would ignore statistical impossibilities, and actually believe their candidate somehow received more legitimate votes.
## 286                                                                                                                                                                                                                                                                                                                                  @POTUS Is this based upon Common Core math??
## 287                                                                                                              show.\n*Me- is this like that Common Core math stuff I keep hearing about?\n*Her- never mind you just don't get it. \n*And with that, she went back to her little Podium so she could continue texting or playing games on her phone or whatever it was she was+
## 288                                                                                                                                                                                                                                                                                                                                  @RealMattCouch That Common Core math, right!
## 289                                                                                                                                                                                                                                                                                                                                                  @GH0STGRLS Common core sense
## 290                                                                                                                                                     FREE RESOURCE | Help Armie the armadillo with his measuring skills! Download and share: https://t.co/xMAKq2WZ4h\n\nCommon Core alignment: CCSS.ELA-LITERACY.L.1.5.C\n\n#edutwitter #homeschooling https://t.co/3X57dp6Hto
## 291                                                                                                                                                                                                                                                                                   @cmuccio @TimRunsHisMouth No but that'd be a cool thing for all the Common Core kids to do.
## 292                                                                                                                                                                                                                                                                                                                     @TheUnitedSpot22 @Solmemes1 That’s that common core math!
## 293                                                                                    Noooooo! \nThe only reason Ceasar was able to win the people was because the #Republic was #corrupt!!!!!\nGive us a voice!!! Or reap the natural consequences! Y'all in @HouseFloor @SenateFloor can AT LEAST just fucking INVESTIGATE and GIVE US A VOICE! \nCommon core history at work!
## 294                                                                                                                                                                                                                                                                                                                         @Celtics1120434 @MecoleHardman4 Is this common core??
## 295                                                                                            @Bowlingpriderj @nikoCSFB @HawleyMO Do the math and science how many registered American voters vs the total numbers of people your media brain washed u to believing voted. The math don’t add up get off the common core &amp; trap music pick up the constitution and learn it.
## 296                                                                                                                                                                                                                                                                                                                     @davidharsanyi @mjhubbard1 Must be that common core math.
## 297                                                                                                                                                                                          LMMAAAAAOOO what kind of high school only offers math english and pe as common core and everything else (and by everything it’s  not science or history classes) as electives 😭😭😭
## 298                                                                                              @MarkDice He thinks he knows about everything just because he made a lot of money in computers/IT. He’s into depopulation/vaccines, controlling weather and “climate change”, common core and race theory in schools, owning farmland for the food shortages he will cause, etc.
## 299                                                                                                                                                                                                                                                        @CBSMiami And Coattail Charlie brought us into Jebby Bushes and Bill Gates and Ashley Moody’s Common Core destructions
## 300                                                                                                                                                                                                                                                                                                       Common core math has always been in the crapper https://t.co/AGtYKLfjJM
## 301                                                                                                                                                                                                                                                                                                                             @IntenseAmerican That must be common core math...
## 302                                                                                                                                                                                                                                                      @aussiegirl3333 See, this is what Common Core does to Americans minds... 🤔\n\nI blame Hussein for this level of stupid.
## 303                                                                                                                                                                                                                                          @donwinslow @Geevers1 @SenSchumer Hey, did you learn Common Core math?\nWhat is 50/50?  Yeah, that’s what I thought.... Shared Power
## 304                                                                                                                                                                                                                                                                                      Confused by your kid’s math homework? Here’s how it all adds up. https://t.co/2pO13qdniw
## 305                                                                                                                                                                                                                                                                                                                                                  @NYHammond common core math!
## 306                                                                                                                                                                                                                                                                   @DineshDSouza The 6000 number may also be a result of a Common Core rounding estimation closer to the tens.
## 307                                                                                                                                                                                                                                                                                                                                  @Chesschick01 @VetArchistOG Common core math
## 308                                                                                                 @DebbieSVA @mattgaetz @ChrisCuomo Debbie”AKA Karen”, how long does it take the FBI to verify a persons age? If they know the date of travel, the person who was supposedly with him should be easy to figure out.  Even with the common core math.  Typical Liberal nut job..
## 309                                                                                                                                                                                                                                        @mattyglesias Check out who began the "Opt Out" of standardized test movement.  That should give you an idea.\nhttps://t.co/Q8PG8dibFF
## 310                                                                                                                                                                                                                                                                                                            @UprightSiddy From what I understand, it isn’t by common core math
## 311                                                                                                                                                                                                                                                    @michaeljburry As if forcing idiotic common core on our kids wasn't bad enough. He's trying his best to set our kids back.
## 312                                                                                                                                                                                                                                        @SeanDunn10 Oh and copying the common core curriculum from Virginia. That's where all of this weird comes from. Where did the $64M go?
## 313                                                                                                                                                                                                         @HinnJill you know... the more i looked into common core math the more i realized this is how my brain works &amp; why i struggled with math so much growing up! 🤣😅
## 314                                                                               @SandraDees21 These people are teaching our children to fear.\nAt which point, of course, they will be rendered incapable of\nRational thought because fear bypasses logic.\nFear compounded with\ncommon core &amp; the race baiting\n&amp; the self hating for exhaling..\nThere will be PTSD
## 315                                                                                                                                                                                                                                                                                                             @Bsl62185468 @Breaking911 Wait what? Is that common core math? 😐
## 316                                                                                                                                                                                                                                                                 @GuidoFawkes1976 Does that have to be done with Common Core?  Sounds like some of that Commie snowflake crap.
## 317                                                                                     @JaviTheWriter @avaanoel But the education system has already started to adapt to people with divergent cognitive abilities. We have teachers being trained to teach with varying methods, to teach to kids with autism, classes for special needs, common core revamped teaching styles.
## 318                                                                                                                                                                                                                                                                                @XRP_OWL Have a teacher in the family, she refused to teach common core, its absolute nonsense
## 319                                                                                                                                                                                                                                                @palan57 @tomloveless99 Common Core is still around to haunt us in so many ways. Like Covid, it has mutated and is persistent.
## 320                                                                   @KennethKohlmey1 @SmithVeritas @Lawrence What? LMFAO Wyoming only gets 3 electoral votes and Kalifornia gets 55! Where the F*ck did you get this BS that Kalifornia has only 18 times more Votes than Wyoming.Oh you learned math under Common core I bet! Try 94% more and that is in line with the Census
## 321                                                                                                                                                                                                                                                                                                                         @corinne_shutack @Grahmptr 🤣🤣🤣 common core at play
## 322                                                                                                                                         Kids can’t read at an age appropriate level, nor do quick math without grabbing paper to draw pictures from common core...but hey, at least they know how to f*%&amp;! Our nation has literally gone to hell! https://t.co/wLQGz8qf1y
## 323                                                                                @OptimistsInc What is your aim? A good entry might be something like body pump to learn proper form. I love kettlebell. Body pump is nice because: 1) instructor, 2) sorta cardio, 3) learn form for several common core lifts (squats, cleans, rows, deadlift, presses, curls, tricepts, etc)
## 324                                                                                                                                                                                                    The tasks in this resource help students understand the true meaning of the equal sign! Both print and digital activities! https://t.co/0VXOCLmP42 https://t.co/LgVlkxEvEJ
## 325                                                                                                                                                                                               @Unicronisboss @HillelAsherman @NoStatism Yes and it should be common core math, which oddly enough the people who understand the advanced math would find unusually difficult.
## 326                                                                                                                                                                                                                                                                                   @cspan @JoeBiden lied. Deaths count by common core math.\nHe was... https://t.co/VzeojpIJkv
## 327                                                                                                                                Math Basics 2, Ages 7-8, Common Core Math Standards, playful learning, addition &amp; subtraction, telling time, math foundation by Unknown\n❰ Kindle Download Free ❱ ➺ https://t.co/oj85o4rxoH\n♛ Publisher: Unknown\n✈ Accessers: 30078 user
## 328                                                                                                                                                                                                                                                          No sleep until we have completed out common core.\n\nAnd why I’m going to have a job forever https://t.co/uPkz06ZBJY
## 329                                                                                                                                                                                                                hate common core. Maybe I shouldn’t hate it, but I do. I find it tedious and to be unnecessary  busy work. \n\nWhat are your thoughts on Common Core? \n\nEnd/
## 330                                                                                                                                                                                    @divinedre11 28 is 2 less than 30. 47 is 3 less than 50. -5, set aside. 30+50=80. 80-5=75. 75! If common core math had been taught when I was a kid, I’d have rocked the whole math world.
## 331                                                                             @realDonaldTrump @TrumpWarRoom\nTHEY DEFAME YOU!\nTRUMP IS A BRAND\n$1 TRIL LOSS\nDEFAMING LOSSES\nHOTELS/CASINOS/WINERY/BOOKS\nPERSONAL APPEARANCES/APPRENTICE\n@Scavino45 @DanScavino @RudyGiuliani \n\nOBAMA $65 MIL BOOK DEAL-GAVE COMMON CORE CONTRACT TO PUBLISHER https://t.co/rtp8JYqac0!
## 332                                                                                                                                                                                                                                                                                                                 @DrJBProblematyk 🤔 Simple math or that common core bullshit?
## 333                                                                                                                                                                                                                                                                                                                          @HeuristicLineup Common core jokes are where it’s at
## 334                                                                                                                                                                                                                                                                                                                                      @DeAngelisCorey This common core for you
## 335                                                                                                                                                                                                                                                        I would love to. But it's not in the Common core standards or on the SAT. So I am not allowed. https://t.co/dNmuR5fbCF
## 336                                                                                                                                                                                                                                                                                                                                                        @catturd2 Common core.
## 337                                                                                                                                                                                                                                                                   Just had a coworker tell me 25k plus 25k is 75k. She must be doing common core math https://t.co/wSsAdAw1BJ
## 338                                                                        @nadineryeg @anthrodigimom01 @Jantafrench Common core and a handful of options work online. Most of the career specific options do not work on line. And without the options they will not have enough credits to graduate. Eg: construction, mechanics, culinary, performing arts just to name a few.
## 339                                                                                                                                                                                                                                                     @Chhapiness @HomeWithPeanut All this 😂😂 I’m not really into sky daddy but please if you’re real help me do common core.
## 340                                                                                                                                                                                                                                            @ConceptualJames Using common core--\nIf you have II and get another II you then have IIII.  Just put them all together.\nAmirite?
## 341                                                                                                                                                                                                                                                                                                                   common core is the root of all evil https://t.co/IvUm0pLQhM
## 342                                                                                                                                                                    @NIKKIR40714989 Even sweeter? Prelim online view ratings show Biden down 75% from the Oscars. I'm unsure how that's even possible w/ 81million fans? \n\nI'm sure some common core expert will explain it.
## 343                                                                                                          @survivorgametlk @markbotsford @JoeBiden Common Core Math? Tomorrow, you will learn a good lesson that this is not a Banana Republic where you steal election. Glitches, dead votes, illegal votes and unsolicited ballots equal 81 million. https://t.co/gT8OdejiNa
## 344                                                                             @KwikWarren Never liked him. He made my kids' lives hell with common core, standardized tests, sucked the money out of our towns by making them pay for the computers, the software, the tests, oh and the whole system had to be upgraded every couple of years. Malicious white collar criminal
## 345                                                                                                                                                                       CVC Phonics Word Houses | Consonant, Vowel, Consonant Sounds | Phonics Worksheet | Grades K-1 | No Preparation Packet | Common Core Aligned by Cameron Frank Products for $1.97 https://t.co/apMW8ArKex
## 346                                                                                                                                           @thehill I believe that the methods of reading non-verbal communication need to be taught as common core education...then maybe the masses would be empowered to read the multiple falsehoods she is communicating in this video...
## 347                                                                                                                                                                                                                                                                                         “Your French Is As Good As Your Common Core Math” – RPGamer - https://t.co/PCspcLA3Ol
## 348                                                                                                                                                                                                                                                                   SOLVING EXPONENTIAL EQUATIONS USING LOGARITHMS - Common Core Algebra 2 https://t.co/00Iv8g2J82 via @YouTube
## 349                                                                                                                                                                                                                                                                                                                                          @ProudOilMan Common Core Math? 🤷‍♀️😆
## 350                                                                                                        @JuliaHa73951181 @jordanbpeterson In an ideal world you’d have students trying out all sorts of different classes so they can find which ones they like. But alas we are stuck with common core. A good place to start would probably be Peterson’s Big 5 test though.
## 351                                        @JoeBlystone22 It’s time to get common core&amp; Medicaid psychologists out of our https://t.co/dziafMaoAN our county a couple of schools have been caught with fraudulently billing about $250,000(thats 1 school $ amount).70% of kids aren’t college ready in Ohio&amp; parents are paying $$$ for tutoring https://t.co/OiOeChaHpH
## 352                                                                                                                                                                                                                                    @Reuters @StephenMcDonell Over the top whining war mongers.  While the USA continues a education of common core. \n#Deist #Stoic #Shanghai
## 353                                                                                                                                                                                                                                                                         @jkenney https://t.co/ZzvsuWdXib\nThis is the website he touts as "research" of common core efficacy.
## 354                                                                                                                                                                                                                                                                                                                Worth the read: Why Common Core failed https://t.co/5VYYwkaTcb
## 355                                                                                                                                                                                                                                                                                                                                  @TheFirstonTV Common Core math strikes again
## 356                                                                                                                                                                                                                                                                                                                             @geoffpilkington What?  Is this common core math?
## 357                                                                                                                                                              I know I’m late to the Common Core conversation, but after sitting with my 7-year old while doing his math assignment, I’m more convinced than ever that liberals make everything they touch FUBAR. #tuesdayvibe
## 358                                                                                     Common Core for civics... actually worse than Common Core if that were even possible (it is, at least Common Core didn't advocate a particular political ideology). Here is a piece by Stanley Kurtz discussing the Educating for American Democracy Initiative.\nhttps://t.co/DNO30ZVNyQ
## 359                                                                                                                                                          @rsburton51 @ArizonaAudit If the results are printed by the NYT and a drag queen mathematician walks you through the calculations in common core math, would that be acceptable?\n\nNumbers don't lie. Deal with it.
## 360                                                                                                                                                                                                       @justin_hart @BillGates That's rich. Common Core, financially backed my Bill Gates, is the driving force behind "show your work" or get it marked wrong. Did he forget?
## 361                                                                                                                                                                                                                                                                 @DeplorableWolfe @january620 @ACTforAmerica and u used common core stupidity for sure https://t.co/UEvA51npQi
## 362                                                                                                                                                                                                                                                                                                                                                @ENSportsCards1 Common core...
## 363                                                                                                      68/ The Common Core does not introduce linear equations until Gr 6, and then does so only with one-step equations.  It is not until Gr 7 that students are introduced to two-step equations (but at that point are expected to deal with all types of rational numbers).
## 364                                                                   @BennieGThompson It won't happen again if Trump doesn't run again. Although there's apparently a huge market for people like Trump\n\nI think the best remedy is better education. Lying is protected speech, but generally a person should not like being lied to. Should probably put that in common core
## 365                                                                                                                                                                                                                                                                                                Tom Loveless: Why Common Core Failed https://t.co/M3HKKH0hhY via @dianeravitch
## 366                                               @binarybits @polisisti @mattyglesias I would NOT be fascinated to see evil standardized testing corps use my stuff; I prefer CC-BY-SA-NC license.\nI'll probably give up eventually and just put them in the public domain. but feeding the gaping maw of Common Core testing companies is depressing.\nhttps://t.co/01via75ZYa
## 367                                                                                                                                   @fiat_money @NationalDebt Common core math... where does  the government get its money.... TAXES\nThe government borrowed money with our credit.\nAny money the government has is our money and without taxes there would be no government.
## 368                                                                                                                                                                                                                                                     @RichardGrenell @alexstamos they are scared that we are awake. They want to dumb us down like the use of the common core.
## 369                                                                                                                                                      We continue to allow Marxist educrats to dumb down children which will effect a dumb future ineffective and ignorant to fight the Marxist transformation of America! Wake up people! #CommonCore https://t.co/fT9b9w1ER5
## 370                                                                                                                                                                                                                                                                                                   Fluoride in the water + Common core = \n\nnot good. https://t.co/A38Zu7aawe
## 371                                                                                                                                                                                                                                                                                @CassandraRules Don't matter who is teaching,as long  as they have the common core curriculum.
## 372                                                                                         “We sorely need to step up the quality of civics education,” writes @rickhess99. “Federal directives which push states and schools to embrace problematic historiography and unapologetic defenses of discrimination are not the way to go about that.” #RHSU https://t.co/D8N6xa90DG
## 373                                                                                                                                                                                                                                                                                                             @JustShar88 @Annakhait And they still use common core here its BS
## 374                                                                       @gstaubli @only_champs @DrewMacEwen I'm not saying kids haven't regressed but I'm saying even if they had been in school in person, they would not be learning at the same rate.  BTW, with Common Core and testing, testing, testing, kids have been learning less and less each year for a LONG time!
## 375                                                                                           @KonstantineinCA Yes! Common Core math is great for people with learning disabilities too! It’s so aggravating how much pressure there is against Common Core because it asks the parents of school-aged children to reconsider the antiquated ways they were forced to learn math.
## 376                                                                                                                                                                                                                                                  @queenveej We don’t teach spelling as a separate entity anymore. And vocabulary isn’t explicit anymore. Part of common core.
## 377                                                                                                                                                                       @hankgreen Common core math is a better conceptual model and creates a deeper level of understanding if learned correctly. \nPrevious math was rote memorization that created little deep understanding
## 378                                                                                                                                                                                                                                                                                                                      Schools Test-Drive Common Core - https://t.co/IF90gDiiLx
## 379                                                                                                                                                                                                                                                                                                                     The End Goal of Common Core Math! https://t.co/KwonsECGjA
## 380                                                                                                                                                                                                                                                                                   @atensnut 11 million views is 85 percent of  3.5 million people? \nMust be common core math
## 381                                                                                                                                                                                                                                   @Son_DeeRRF @HalcyonRams @_RamsRegeared @TheMayorRobF @LARams520 I feel you. Math wasn’t my subject. It certainly wasn’t after common core.
## 382                                                                                                                                                                                                                                                                                                              @wanderkidstv @ghoulzalt common core math in california be like:
## 383                                                                                                                                                                                                                                       Fear of Flying's Common Core. Psychology Today https://t.co/7nMRyt4YuC RT travel  #airlines #IARTG #book travel https://t.co/AqV3aCp8Ba
## 384                                                                ❤️ Jester King wine program curator Justin Maniar has selected some special wines for your enjoyment this Valentine's Day! @jesterkingbrewery wine program features independent producers whose approach aligns with our common core values of engaged creativ… https://t.co/7Z19IFpLoB https://t.co/stjubTYT9f
## 385                                                                                                                                                                                                                                                                      [Download] PDF Grade 3 Test Practice for Common Core (Barron's Core Focus) -&gt; https://t.co/iFmPdp8A6w
## 386                                                                                                                                                                                                                                                                           Download Kindle 2nd Grade Math Workbook: Common Core Math Workbook &gt;&gt; https://t.co/fIOCLEFiLK
## 387                                                                                                                                                                                                                                                                                                                                       @BobGolen 5th grade common core math...
## 388                                                                                                                                                                                                                                                                                                                      @thebradfordfile It adds up if you use Common Core math.
## 389                                                                                                                                                                                                                                                                                                    Can someone explain common core math to me please? https://t.co/IavRSDruAE
## 390                                                                                                                                                                         @_UnityForAll_ @socofthesacred @JemarTisby @AlsoACarpenter @donmoyn The "necessarily" in #2 is garbage, and #3 is just the new "Common Core mandates specific, wacky math algorithms." Memetic trash.
## 391                                                                                                                 @tweettruth2me That's because the WAY you calculated the answer is no longer "allowed" (even though it does provide correct answers). That's to "Common Core" learning, every student has to go around their fist to get to their thumb for the SAME answers!
## 392                                                                                                                                                                  @wstcoastecochic @HeuristicLineup This was always how I did it in my head anyway. When I looked at common core it made way more sense to be than however my teachers were trying to teach me back in school.
## 393                                                                                                                                                                                                                                                                            @Brendanc2000 @SquidGod69 this is true. ever since they put in common core, no one can do anything
## 394                                                                @Jbuzzdc @boston_camera @LeeHolly81 @realDonaldTrump While you swallow CNN, ABC, CBS, NBC, BCC hook, line and sinker. No, buddy. I don’t watch FOX either. I think for myself, read my law books, educated prior to the advent of Common Core Indoctrination. And I NEVER called You people classy. \U{01f92e}
## 395                                                                                                                                                                                                                                                                                               @jessica_pyper It's the worst subject... I actually enjoy her common core math.
## 396                                                                                                                                                                                                                                                                                                @ctlibertyjunky @Tactical_review Another reason to eliminate common core math.
## 397                                                                                                                                                                                                                                                                                                                                              @SusanStJames3_ Common Core Math
## 398                                                                                                                                                                                                                                                                                                                                                @julie_kelly2 Common Core math
## 399                                                                                                                !8th Grade Common Core Math: Practice Workbook - Practice Questions, Answers &amp; Explanations - Recommended by Teachers - Ace Academic Publishing-Based on Common Core State Standards: Similar to a standardized exam, you can find questions of all types,
## 400                                                                                                                                                                                                                                                                                                       @vicious696 And the existence of common core still makes no sense to me
## 401                                                                                                                                                                                                                          @JessicaTaylor I was a big fan of Jeb Bush until he told a group of parents that he had looked at Common Core and that he’s right and they’re wrong.
## 402                                                                                                                                                                                                                                                            @nuxjaw_v2 Common core is why they stopped teaching grammar in schools they actually took it out of the curriculum
## 403                                                                      @WeAreTeachers Another form of practice for your students on how to drag a number to a picture of a certain quantity. Originally designed for kindergartners, this lesson can be adapted for any grade level.\n\n#commoncore #technology #numbers #googleslides #kindergarten\n\nhttps://t.co/zITD1j1Vbt
## 404                                                                                                                                                                                                                                                                               @rdrhwke As in common core math...you get points for each step even if the answer is wrong🤦🏻‍♀️
## 405                                                                                                                                                                                                                                                                                                                                     Common Core Math. https://t.co/96nr9kVsoH
## 406                                                                                              These stories need to call to account Bill Gates and "I want to be The Education Mayor" Mikey Bloombito. When Black students made up a larger proportion of the population at Stuyvesant, we didn't have Mayoral Control and we didn't have Common Core. https://t.co/K5BYu5NyLx
## 407                                                                                                                                                                                                                                                                                                                                     Common Core math. https://t.co/85Uv020mXl
## 408                                                                                                                                                                                                                                                                                                                     @Sundae_Gurl Why do I think a #GQP is behind Common Core.
## 409                                                                                                                                                                                                                                                                                                         @DawnTJ90 Another victim of Common Core math. https://t.co/uAiDaYNCl2
## 410                                                                                                                                                                                                                                                             If You Oppose Common Core, Wait Until You See How It’s Used to Promote Abortion Read More https://t.co/Is9h7lFzW5
## 411                                                                                     If anyone thought what I would do IF I won lotto was to be another pain in the but just like #AlexJones, Your Right!\nI have been watching this world long enough 2see it for what it is then use that to move the youth to a better way to think then this common core #news fed to them
## 412                                                                                                                                                                                          @Stephenbobby16 @yogayantra @OrganicConsumer Bill has a habit of trying to "help" fields by pouring money into what he thinks is good and not listening to experts (ex. Common core)
## 413                                                                                                                                                                                                @CamEdwards @marilyn_brickel So now society shall apply common core math to every facets of society. All evil is accepted. All who don’t like it shall be censored or droned😎
## 414                                                                                                                                                                                                                                                      Which one doesn’t belong?\nHow do they all belong?\n\nCommon Core Standards:\n#ccss #3OA5 #3NBT3 https://t.co/BDw0P3lk3g
## 415                                                                              If you are an entrepreneur in the food processing industry then here is a revolutionary opportunity for you.\n\nInvest in Mega Food Park, Ladhowal equipped with modern infrastructure and the benefits of basic enabling and common core processing facilities.\n (1/2) https://t.co/ogdZl9BWfr
## 416                                                                                                                                                                         We have moved onto our Panel discussion in the Asia Pacific Region. These are the key questions. First discussing the common core of grounded theory. #groundedtheory #WGTD21 https://t.co/sfVXC3N99Q
## 417                                                                                                                                                                                               @JoyAnnReid We don’t really teach it, do we? I had American government and international relations in my school but that was a long time ago. What does common core accomplish?
## 418                                                                                                                                                                                                                                                                                                                                       @AmDigest Common core math silly rabbit
## 419                                                       @NickStarrMusic @AthertonKD @derderdebonair ‘06 high school grad and around my time maybe only the most selective schools required a supplemental or maybe instead gave you enough rope where the supplemental essay that school X was asking for could be applicable to school Y, in addition to the common core essay
## 420                                                                                                                                                                                                  @dcexaminer Beijing Biden and Kommie-la Harris will be implementing common core "Communist Studies Appreciation" as part of the failed U.S. public school system curriculum.
## 421                                                                                                                                                                                                                                           @breakfasttv Thanks to common core math, people don't even know what a dozen is lol. Isn't the usa last in the world for education?
## 422                                                                            Wish Flynn was Prez.  Trump WHY you sign &amp; pass Kansas Sen. Moran (Obama Voter bills against wall &amp; 2A) you Honored Teachers HURT Children how long in Fake History of U.S. &amp; forced early Sex Education? Common Core? Drag Queen Story Hours? Socialism? WHY? https://t.co/I1LMBHrDSb
## 423                                                                                                                                                                                                                                                                                                                         @MondayHeinz this dude must be using that common core
## 424                                                                                                                                                                                                                                                                                        @christchu1846 @VictorB123 @DeAngelisCorey Unfortunately we have common core in Ohio..
## 425                                                                                                                                                                                                                                                                                                                                              Common core ELA and Math was ode
## 426                                                                                                                                                                                                                                                                                                                          @CarrollQuigley1 British version of common core 🙄🙄
## 427                                                                                                                                                                                                                                                                               @Student877 @jdowning711 @imDarkoza @itsahmedyall @ReejFPS Sorry you were raised on common core
## 428                                                                                                                                                                                                                                                                                          @chadmask_msu Damn! I’ve tried but just can’t get the hang of that common core math.
## 429                                                                                                                                                                                                                                                                                                                    Maybe it's because of common core? https://t.co/Vj31gVdnQg
## 430                                                                                                                                                                                 @VitalEndurance @reallygraceful @BillGates Oh heck yeah... I been reading on Billy boy for years. He was also in on our wonderful common core curriculum. No surprise there. Hes into it all.
## 431                                                                                                                                                                                                                                                                                                                          @HeartbreakCtyDC Common core will do that to you lol
## 432                                                                                                                                                                                 [Download] EPUB 5th Grade Common Core Math: Daily Practice Workbook - Part I: Multiple Choice | 1000+ Practice Questions and Video Explanations | Argo Brothers =&gt; https://t.co/qyuTd50hL0
## 433                                                                                                                                                                                                                                                                                                                                       @CastellKim Oh god not common core math
## 434                                                                                                                                                                                                                                                                                                         @RickyArriolaMB Common Core has made us all equal... Nobody knows it.
## 435                                          @RepBoebert @Ladude2014 Oh, Lauren -stop with this BS already.\n@POTUS has NEVER backed GND.\nNot once, ever.\nJoe has his own Green Deal; it was what he was referring to in the Trump 'shit-show debate.\n\nAnd, unless your reading comprehension isn't up to Common Core standards, you already know it. https://t.co/V3xXXSONdG
## 436                                                                                                                                                                                                                                     Please retweet! Oh--and ideally we're talking about something that explicitly corresponds to Common Core. Thanks. https://t.co/JpB3jUBH2W
## 437                                                                                                                          @SusanStJames3_ There is zero chance it didn't come from a lab, what are the odds a Corona virus government lab just happens to be in the same area that a nasty Corona virus starts spreading. Only common core math would say this doesn't add up.
## 438                                                                                                                                                                             Is this what we get from that fancy new common core math?   Where did that extra 15% come from?  \n\nSo this is the math used to calculate Biden votes.  \n\n@REMASCULATE https://t.co/0iJcTQ1pA4
## 439                                                                                                                                                                                                                                                                                                                     @RedWingGrips Yep that's what common core math looks like
## 440                                                                                                                                          The state can change the standards, but until the software manufacturers change the standards, students will still be sitting down for screen time with the Common Core.”\nVery interesting article 👇2/2\n\nhttps://t.co/4kmP069byM
## 441                                                                                                                                      @Nouveau_Camelot @people Waiting for that call Twitter warrior. Bless your heart. You are unable to Google.  Proof of the necessity of Common Core. Here you go 347-948-3952. Do I need to give you instructions on how to dial a phone?
## 442                                                                   @angem25 @diehardny53 @Lesdoggg Texan here. We lost that leverage several years ago when the Texas State Board of Education decided that Common Core Standards had to be rejected and kept out of the minds of Texas students. Still crazy, but not as influential on other states. https://t.co/tPoOCueT8F
## 443                                                                                                                                                                                                                                                                      @newsmax That's hilarious! Is this common core math? Trump had 51 million viewers. Biden had 10 million.
## 444                                                                                                                                                                                                                                                                                                        @bayareahausfrau It’s the way of  *Common Core* applied to everything.
## 445                                                                                                                                                                                                                                                                                                                                                    @n_quests Common core math
## 446                                                                                              @ilpoliski @Wirepoints @CTULocal1 @chicagosmayor @iftaft Please take out inequality bs. It truly is part of the communism agenda! Stats speak for all! Failure is evident.  People need to do what's right, not what's directed from Gates' hell: common core, money greed,  etc
## 447                                                                                                                                                                                                                                                                                                            @BidenLs Another Common Core Math expert. 🤦‍♂️ $500 million. 😂😂😭
## 448                                                                                                                                                                                                                                                        @peaceintution @barron1946_john Common core is fake math! Just like everything else they are using to alter our minds.
## 449                                                                                                                                                                                                                                                @Dshare1 @DemocracyInn I hate common core! Luckily my son is at a charter school now! No more common core BS! And we’re in NC!
## 450                                                                                                         @ImKarenDammit @ChargerJeff And I’ll need a citation on the 77% number. That’s a bullshit take. Only 39% have gotten it, even though it’s available for everyone &amp; has been for awhile but somehow 2x the number vaccinated support it?  That’s common core math.
## 451                                                                     @mikegolicjr I don't think common core is necessarily for everyone (&amp; I don't have children), but this is how everyone thinks that is quick at doing math in their head. The process has been around since the beginning of times, but now they're trying to make everyone good at head math I guess?
## 452                                                                                                                                                                                Think of all the $ you could make by creating tests &amp; courses after back-mapping AP skills all the way to Kindergarten!  (as Coleman tried to do with #Commoncore) https://t.co/zuy7dqSU1a
## 453                                                                                                                                                                                                                                                                                              @ScottWalker I think most of #Congress follows Common Core math standards 😏😑😒
## 454                                                                                                                                                                                                                                                                                            @stclairashley She needs to go back to school. \nThat Common Core English is CRAP.
## 455                                                                                                                                                                                                                                                  @ArikStratton meth was hip 2 the bitches brew however very bad at math well b4 common core (or overly optimistic)~ 85 please
## 456                                                                                                                                                                                                                                                                                                   @AFoxApc @RitaPanahi See common core math and it’s adoption for the answer.
## 457                                                                                                                                                                                                                                                   2 million followers+68 million American Twitter users=81 million votes. Must be common core math... https://t.co/j7kXl70L1S
## 458                                                                                                                   @NBCNews Unbelievable and these are ‘some’ of the reasons that spark ongoing hatred and divide in this country.  Can families opt their children out of Common Core math also.....I work in education and know MANY people who disapprove of that. 🙏🙏🇺🇸🇺🇸
## 459                                                                                                                                                                                                                                                                                                             Why Common Core failed https://t.co/5RdOQJ4gcf via @BrookingsInst
## 460                                                                                                                                                                                                                                                    @arodHDIC @RandyScottESPN What Charlie Brown used to call New Math.\n\nI don't know if it's common core or something else.
## 461                                                                                                                                                                                                                                                                                      @LibertyLockPod MMT was devised by the same group of morons that wrote common core math.
## 462                                                                                                                                                                                                                                                                                                                                        @catturd2 It's their common core math!
## 463                                                                                                                                                                                                                                                         @carmichadam I don’t love you enough to give myself vaccine induced AIDS because some lab tech used common core math.
## 464                                                                                                                                     @hepbot @mr1492 @LoriBaker7 @DeAngelisCorey This isn't like buying a new tv or car. Also, look at Common core. Gates foundation's push to improving schools, RAND institute study found it was a mistake, basically Gates was like, oops.
## 465 @IndivisibleGA04 @trendsetstudio @DemCastUSA @IndivisibleGAco @IndivisibleLum At the rate people are asking for “equal pay” and handouts, by 2025 a burger 🍔 will cost your 100 dollars. Did common core math wreck people’s brains so hard that they can’t Google search anymore? If women get extra money for nothing then ok i identify as female. Money plz \U{01f932}🏻
## 466                                                                                                                                                                                                                                                                                                                    @catturd2 @gatewaypundit Common core spelling right there!
## 467                                                                                                                                                              @jbcapoccia @DanIsett A lot of parents home school because of common core. You can call it different names but it is still common core. Very bad for our children. The dumbing down of our public school agenda.
## 468               @DrSue22 @jan_dubiel @StarlightMcKenz @thepetitioner @JamesEYFS Robin Alexander, I salute you!  The question of what is education for is central. Also, in this thread is the idea that children are not standardised units to be taught in standardised ways. Common &amp; core threads yes, but interwoven with the vitality &amp; complexity of their ideas.
## 469                                                                                                                                                                                                                                                                                           @nameoftheyear so this is basically common core math and that's why everyone is mad
## 470                                                                                                                                                                                                                                                                     @rdrhwke 81 mil - 66k will NOT GIVE THE DEMS ADVANTAGE, there using common core math again... #VoterFraud
## 471                                                                                                                                                                                                       Certainly I have been duped. Certainly common core math doesn't require the use of a number line. I must have been rused by someone discrediting common core with lies.
## 472                                                                                                                                                                                                                                                                                   @YourAuntieMame Is he using the common core grade standards??? Alternate to reality!!  Wow!
## 473                                                                                                                                                         Many Americans are demanding your resignation young lady.  I believe you need to educate yourself on Americanism, history and the law.  Imma go ahead and assume you’re common core educated. https://t.co/bIreUpSkj5
## 474                                                                                                                                                                                                                                                                                                                      @RyanAFournier He must be using that Common Core math...
## 475                                                                                                                                                                   @chelseahandler 50/50...?  Are you sure about that?  You know how many black men were shot vs how many black men were stopped?  Common core math really making people (redacted)... https://t.co/WtubtA9fKt
## 476                                                                                                                                                                                                                                    @Oldglorycries @NewDayForNJ @GovMurphy And he hated teachers. I’ll never forget how he treated the teachers. He brought in common core too
## 477                                                                                                                                                                                                                                                                            @mikeysavge @MLBTheShow @Ramone_Russell Sds must’ve created there own common core or something lol
## 478                                                                                                                                      Martha MacCallum spars with teachers union president over critical race theory in classrooms: 'That's a dodge'\n\nhttps://t.co/ZeQuZMHZ8Y\nThis will be booted out of public schools, and should be! Common core needs to be tossed too!
## 479                                                             Let’s revisit the claim the new math framework allows calculus.\n\nThe framework says no Math 1 until 9th grade then Math 2 in 10th.\n\nIn Irvine schools, where we’ve already adopted common core, a student who takes Math 2 in 10th cannot take calculus without extra summer classes. https://t.co/XvB1ke04FQ
## 480                                                                                                                                                                                                                                                                                                           @LizerReal I don’t think that’s in Common Core until middle school.
## 481                                                                                                                                                                                                                                                                                                                               @patriottakes This common core math is no joke.
## 482                                                                                                                                                                                                                                                                                                                                          cOmMon CoRe! https://t.co/0LodanaQ9a
## 483                                             @FeelingsDestro1 @FromRagsToGP @NFLDraft I have never done anything that you just said except common core math. And your evaluation process sucks ass too Tlaw is getting hyped up to be the god damn Lebron James of football and he had a top 2 offense for 3 years and a top 2 defense for 3 years hell we would all look good
## 484                                                                                                                                                                                                                                        @theblaze Common core math:\n22 executive orders per week for\n52 weeks for\n4 years....\n4576 executive orders during his presidency.
## 485                                                                                                                                                                                                                                                                                                       @Jantafrench Or why they are using Common Core Standards from Virginia?
## 486                                                                                                                                                                                             @GabagoolMyAss It was taking him forever doing it their way, and then I showed him the old fashioned way and he does it pretty quickly now. Not to complain about common core lol
## 487                                                                                                                                                                                                                   @AshleyFrankly Is this some of those common core new-math numbers nonsense ⁉️ ma'am the only four you might be is out of five stars. https://t.co/biswiaxndZ
## 488                                                                                                                                                                                                                                                                      @JoeWilesInFla No Joe. Lol. Common Core are standards. This is a teaching strategy for word problems. 😆
## 489                                                                                                                                                                        @ArevFTW Oh WANDA-VISION, that makes so much more sense.  The whole time I kept asking Deb who Juan is and where the Division comes in. I thought it was because I don’t get common core or something.
## 490                                                                                                                                                                                                                                                                                                                                  Is this common core? https://t.co/wBZ4XTPDYm
## 491                                                                                                                                                    i play jumpstart, but math's hard\nand i can't stand learning anything\n i like when grown-ups call me smart\nbut i'm dumb, so i won't add sums up anymore\nand i barely even care that i'm forgetting all the common core
## 492                                                                                                                                                                                                                                                                                                                        @2Sly4i2 @pvtjokerus It’s common core science 😂😂😂😂
## 493                                                                                                 The suppression of academic freedom starts in K-12 with the influence of billionaire "philanthropists" like Bill Gates, Waltons, et al who paid to impose the Common Core Curriculum. Different strategy, same result https://t.co/FInxXjDayV via @phillyinquirer @Will_Bunch
## 494                                                                            @neontaster Book deals are how the elites legally bribe people who do their bidding. Obama enacts common core then gets like 50 mil from the same company for a book deal. Cuomo kills the elderly to raise the death count and gets 5.1 mil. Bernie dropped out and got millions in a book deal..
## 495           @IngrahamAngle Bill Evers may be the former Ed Sec...but he is no expert in Math Common Core Standards. Listen:\n\n“Let me just mention some math deficiencies...They are missing things...”\n\n“Ratios and Proportions” (Grade 6) 🙄\n\n“Division with Remainders” (Grade 4) \U{01f974}\n\nhttps://t.co/AiuktFgfYo https://t.co/uYIAF09jxJ https://t.co/UH1JlWDlZO
## 496                                                                                                                                                                                                                                                                                                                             @JackPosobiec Common core math: 1200 + 600 = 600.
## 497                                                                                                                                                                                                                                                                                                 @joeycannoli6 @KellyC7002 Rubber Brain Joe only knows common core math 😑😒😏
## 498                                                                                                                                                                                                                                         @andrealong1971 HA HA HA..SAD THOUGH BC MY POOR SON IS 23 AND CANT READ AND WRITE CURSIVE.  THIS COMMON CORE BULLSHIT RUINED OUR KIDS
## 499                                                                                                                                                                                                                                                                                                                         @1Krohmer13 @BuckBond4 @PamelaGeller Common core math
## 500                                                                                                           @RunhappyK @jjoneil3 Same here, I will write papers all day long, I can review history with you and enjoy every second, but the minute I try to do math my brain shuts down. I am not wired that way. It doesn’t help that this common core makes zero sense to me!
##                                                                                                                                                                                                        word_scores
## 1                                                                                                                     {0, 0, 0, 0, 0, 0, 0, 0, 3.1, 0, 0, 0, 0, 1.7, 1.4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.1, 0, 0, 0}
## 2                                                                                                                                                               {0, 0, 0, 0.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 3                                                                                                                                 {0, 0, 0, 0, -2.1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.3, 0, 0, 0, 0, 0, 0}
## 4                                                                                                                      {0, 0, 0, 0, 0, 0, 0, 0, 0, 2.3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.7, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 5                                                                                                         {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.4, 0, 0, 0, 0, 0, 0, -1.2, 0, 0, 0, 0, 1.1, 0, 0, 0, 0, 0, 0, 0, 0}
## 6                                                                                                                                                                                      {0, 0, 0, 0, 0, 0, 0, 0, 0}
## 7                                                                                                                                                        {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 8                                                                                                                                                        {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 9                                                                                                                                                               {0, 0, 0, 3.2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 10                                                                                                                                                    {0, -1.3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 11                                                                                                                                                 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -2.3, 0}
## 12                                                                                                              {0, 0, 0, 0, 0, 0, 0, -2.294, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 13                                                                                                                                                                            {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 14                                                                                                                                                                      {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 15                                                                                                                                                                                        {0, 0, 0, 0, 0, 0, 0, 0}
## 16                                                                                                                                        {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 17                                                                                                     {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.2, 0, 0, 0, 0, -1.3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 18                                                                                      {0, 0, -3.2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.2, 0, 0, 0, -0.962, 0.888, 0, 0, 0, 0, 0, 0}
## 19                                                                                                                                                                      {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 20                                                                                                         {0, 0, 2.093, 0, -1.1637, 0, 0, 0, 0, 0, 0, 0, -2.3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.2, 0, 0, 0, 0}
## 21                                                                                          {2.3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.733}
## 22                                                                                                                                                                           {0, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0}
## 23                                                                                                                                 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.7, 0, 0, 0, 0, 1.5, 0, 0, 0, 0, 0, 0}
## 24                                                                                                                                   {0, 0, 0, 0, 0, 0, 0, 1.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 25                                                                                                                                              {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 26                                                                                                                                                                                     {0, 0, 0, 0, 0, 0, 0, 0, 0}
## 27                                                                                                                                {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.5, 0, -2.4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 28                                                                            {0, 0, 0, 0, -1.7465, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.8, -2.25, 0}
## 29                                                          {0, 0, 0, 0, 0, -1.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.5, 0, 0, 0, 0, 0, 0, -1.8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 30                                                                                                                                                                                           {0, 0, 0, 0, 0, 0, 0}
## 31                                                                                                                                                                                           {0, 0, 0, 0, 0, 0, 0}
## 32                                                                     {0, 0, 1.9, 0, 0, 0, 0, 0, -0.2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.8, 0, 0, 0, 0, 0, 0}
## 33                                                                                                                              {0.4, 0, 0, 0, 0, 0.75, 0, 0, 0, 0, 0, -1.1, 0, 0, -1.25, 0, 0, -3.3, 0, 0, -5.55}
## 34                                                                                                                                                    {0, 0, 0, 0, 0, 0, 0, -0.4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 35                                                                                                                                                                                        {0, 0, 0, 0, 0, 0, 0, 0}
## 36                                                                                 {0, 0, 0, -2.57835, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.2, 0, 0}
## 37                                                                                                                             {0, 0, 0, 0, 0, 0, 0.6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 38                                                                                                                                                                                         {0, 0, 0, 0, 1.9, 0, 0}
## 39                                                                 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.4, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 1.1, 0, 0, 0, 0, 0, 0, 1.9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 40                                                                                                                                                                               {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 41                                                                                                                                                               {0, 0, 0, 0, 4.8, 0, 0, 0, 0, 0, 0, 0, 1.2, -3.6}
## 42                                                                                                                   {0, -0.6, 0, 0, 0, 0, 0, 0, 0, 0.95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 43                                                                                              {0, 0, 0, 0, 0, 0, 0, 0, 0, -2.4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 44                                                                                                                                                {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.75, 0, 0, 0, 0, -3.45, 0}
## 45                                                                                                       {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 46                                                                             {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.6, 0, 0, 0, 0, 0, -2.8, 1.3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 47                                                                                                             {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 48                                                                                                                                                             {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 49                                                                                    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.2, 0, 0, 0, 0, 1.184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 50                                          {0, 0, 0, 0, 0, 0, 0, 0, 0.15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 51                                                                                                   {0, 0, 0, 1.5, 0, 0, 0, 0, 0, 0, 0, -2.093, 0, -3.3567, 0, 0, 0, -2.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 52                                                                                                                                                                                                 {0, 0, 0, -2.3}
## 53                                          {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.4, 0, 0, 0, 0, -1.6, 0, 0, -1.2, 0, 0, 0, -0.9, 0, 0, 0}
## 54                                                                                                                                                                {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 55                                                 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3.4, 0, 0, 0, 0, 0, 0, 0, 0, -2.6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.6, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 56                                                                                                                                                                {0, 0, 0, 0, 0, 0, 0, 0, 0, -3, 0, 0, 0, 0.2, 0}
## 57                                                             {0, 0, 0, 0, 0, 0.85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 58                                                                                                                                                                                              {0, 0, 0, 0, 0, 0}
## 59                                                                                                  {0, 0, 0, 0, 0, 0, 0, 0, 0, -1.2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.733, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 60                                                           {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.7, 0, 0, 0, 0, 0, 0, 1.6, 0, 0, 0, -2.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.3}
## 61                                                                                                                                                               {0, 0, 2.3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.1, 0}
## 62                                                                                                                                                                                                    {0, 0, 0, 0}
## 63                                                   {0, 0, 0, 0, 0, -0.85, 0, 0, 0, 0, 0.75, 0, 0, 0, 0, 0, 0, 2.25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.8995, 0}
## 64                         {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.3, 0, 2.1, 0, 0, 0, 0}
## 65                                                  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.6, 0, 0, 1.8, 0, 0, 0, 0, 0, 0, 0, 0, -1.2, 0, 0, 0, 0, 0, 1.5, 0, 0, 0, 0, 0, 1.9, 0, 0}
## 66                                  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3.6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.993, 0, 0, 0, 1.2}
## 67                                                                                                                                                                   {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 68                                                                                              {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 69                                                                                                                {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 70                                                                                                                                                                {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.2, 0, 0, 0}
## 71                                     {0, 1.3, 0, 0, 0, 0, 1.3, 0, 0, 0, 0, 0, 0, 0, 0.3, 0, 0, 0, 0, 0, 0, 0, 0, 1.9, 0, 0, 0, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.4, 0, 0, 0, 0, 0, 0, 0, 0}
## 72                                                                                                                                                                            {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 73                                                                                                                                                                   {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 74                                                                                                                                                                                  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 75                                                                                                                                                             {0, 2.35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 76                                                                                                                                                   {0, 0, 0, 0, 1.5, 0, 0, 0, 0, 0, 0, 0, 1.5, 0, 0, 0, 0, 0, 0}
## 77                                                                                        {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 78                                               {0, 0, 0, 0, 2.1, 0, 0, 0, 0, 0, 1.933, 0, 0, 0, 0, 1.6, 0, 1.6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.7, 0, 0, 1.933, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3.1, 1.6, 0, 2, 0}
## 79                                                                                                                                                                                   {0, 0, 1.7, 0, 0, 0, 0, 0, 0}
## 80                                                                               {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3.3, 0, 0, -2.1}
## 81                                                                                                                                                                         {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 82                                                                                                                                                                            {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 83                         {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 84                                                                                                                                                                           {0, 0, 1.5, 0, 0, 0, 0, 0, 0, -2.693}
## 85                                                                                                                                                                                                    {0, 0, 0, 0}
## 86                                                                                                                                                                                  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 87                                                                                                                                                                                      {0, -3.533, 0, 0, 0, 0, 0}
## 88                                                                                                                                                                               {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 89                                                                                                                   {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.3, 0, 0, 0, 0, -2.9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 90                                                                                                                         {0, 0, 0, 0, -1.7, 0, 0, 0, 0, -0.9363, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 91                                                                                                                                                                                     {0, 0, 0, 0, 0, 0, 0, 0, 0}
## 92                                                                {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.5, 0, 0, 1.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.5, 0}
## 93                                                                                                 {0, 0, 0, 0, 0, -0.9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.9, 0, 0, 0, -1.7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 94                                                                                                       {0, 0.6, 0.85, 0, 0.75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 95                                                                                                {0, 0, 0, 0, 0, 1.6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3.1, 0, 0, 0, 0, 0, 0, 0.814, 0, 0, 0, 0, 0, 0, -2.393, 0}
## 96                                                                                                                                                                      {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 97                                                                                                                                                                                     {0, 0, 0, 0, 0, 0, 0, 0, 0}
## 98                                                                                         {0, 0, -2.1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.7, 0, 0, 0, 0}
## 99                                                                                                                                                          {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0}
## 100                                                                                                                                                                                                   {0, 0, 0, 0}
## 101                                                                                                                                                         {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 102                                                                                                                                                                {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.1, 0}
## 103                                                                                                                                            {0, 0, -3.2, 0, 0, 0, 0, 0, 1.5, 0, 0, 1.5, 0, 0, 0, 0, 0, 0, -2.5}
## 104                                                                                                                                           {0, 0, 0, 0, 0, 0, 0, 0, 0, -2.3, 0, 0, -2.3, 0, 1.4, 0, 0, 0, 0, 0}
## 105                                                                                                {0, 0, 1.7, 0, 0, 0, 0, 0, 0, 0, 0, -2.5, 1.8, 0, 0, 0, 0, 0, 0, 0, 0, 3.2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 106                                                                                                                                                            {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 107                                                                                                                    {0, 0, 0, 0, 0, 0, 0, 1.3, 0, 0, 0, 0, 0, 0, -1.7, 1.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 108                                                                                                                                                   {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 109                                                                                                              {0, 0, 0, -0.7, 0, 0, 0, 0, 0, 0.8, 0, 0, 0, -3.2, 0, 0, 1.7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 110                                                                                                                                                                  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 111                                                                     {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 112                                                                                                                                                                      {0, 0, 0, -2.5, 0, 0, 0, 0, 0, 0, 1.3, 0}
## 113                                                                                                                                                                           {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 114                                                                                    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.4, 0, 0, 0, 0, 0}
## 115                                                                                     {1.6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 116                                                                                                                  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 117                                                                                                                                                                {0, 0, 0, 1.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 118                                                                                                         {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.7, 0, 0, 0}
## 119                                                                                                                                                {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 120                                                                {0, 0, 0, 0, 0, 0, 0, 0, 1.4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, -1.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 121                                                                                                                                                                                          {0, 0, 0, 0, 0, 0, 0}
## 122                                                                                                       {0, 0.75, 0, 0, 0, 0, 0.85, 0, 0, -3.45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.882475, 0, 0, 0, 0, 0, 0, 0}
## 123                                                                                                                                            {0, 0, 0, 0, 0, 0, 0, 0, 0, 1.1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.1, 0}
## 124                                                                                                                                                 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.8, 0, 0, 0, 0, 0, 0, 0, 0}
## 125                                                                                                                                                                                          {-1.7, 0, 0, 0, 0, 0}
## 126                                                                                              {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 127                                                                                                                                                               {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.3, 0, 0, 0}
## 128                                                                                                                                                                                       {0, 0, 0, 0, 0, 0, 2.35}
## 129                                                                                                                                                      {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3.6, 0, 0, 0, 0, 0, 0, 0}
## 130                                {0, 0, 0.9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.05, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 131                                                                                                               {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.7, 0, 0, 0, 0}
## 132                                                                                                                                                                                                   {0, 0, 0, 0}
## 133                                                                                        {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.1, 0, 0, 0, 0, 0, 0, 0, 0, -2.3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.3}
## 134                                                                                                                                                                                        {0, 0, 0, 0, 0, 0, 3.2}
## 135                                                                                                                                        {0, 0, 0, 0, 0, 0, 0, 0, 0, -1.1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.9, 0}
## 136                                                    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.6895, 0, 0, 0, 0}
## 137                                                                                                                                  {0, 0, 0, -1.5637, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.8, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 138                                                                                                                                       {0, -1.4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 139                                                                                                                                                                 {0, 2.3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.1, 0}
## 140                                                                                                                                        {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1.5}
## 141                                                                                    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.85, 0.85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3.45, 0}
## 142                                                                                                                                                                                                   {0, 0, 0, 0}
## 143                                                                              {0, 0, 0, 0, 0, -1.793, 0, 1.9637, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.2}
## 144                                                                                                                                             {0, 0, 0, 1.7, 0, 0, 0, 0, 0, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 145                                                                                                                                                        {0, -1.933, 0, 0, 0, 0, 0, 0, 1.5, 0, 0, 0, 0, 0, 0, 0}
## 146                                                                                                                                                  {0, 0, 0, 1.5, -1.3, 0, 0, 0, 0, 0, -2.5, 0, 0, 0, 0, -1.406}
## 147                                                                                                                  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.3}
## 148                                                                                                                                                          {1.2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 149                                                                                                                                                                                         {0, 3.933, 0, 0, 0, 0}
## 150                                                                                                                                                                                             {0, 0, 0, 0, 0, 0}
## 151                                                                                                                                                                   {0, 0, 0, 0, 2.6, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 152                                                                                                                                       {0, 0, -1.4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 153                                                                                                                                         {0, 0, 0, 0, 0, 0, -2.7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.11, 0, 0}
## 154                                          {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 155                                                                                                                                                          {0, 0, 0, 1.9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.3}
## 156                                                                                                                                                                              {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 157                                                                                                       {0, 0.75, 0, 0, 0, 0, 0.85, 0, 0, -3.45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.882475, 0, 0, 0, 0, 0, 0, 0}
## 158                                                                      {0, 0, 0, -2.1, 0, 0, 0, 0, 0, 0, 0, -0.814, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.5, 0, 0, 0, 0, 0, 0, 0, -1.7, 0, 0, 0, 0, 0, 0, 0}
## 159                                                                                                                                             {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 160                                                                                                                                              {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.3, 0, 0, 0}
## 161                                                                                       {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.7, 0, 0, 0, 0, 0, 0, 0}
## 162                                                                                                                                                                           {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 163                                                                                                                                                                                             {0, 0, 0, 0, 0, 0}
## 164                                                                 {0, 0, 2.35, -1.2, 0, 0, -0.592, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 165                                                                              {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.5}
## 166                                                                                   {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3.57835, 0, 0}
## 167                                                                                                                                     {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.7637, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 168                                                                                                                                                                                                   {0, 0, 0, 0}
## 169                                                                                                                                                                                                   {0, 0, 0, 0}
## 170                                                                                                                                                                                             {-1.7, 0, 0, 0, 0}
## 171                                                                                                         {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 172                                                                                          {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.2, 0, 0, 0, 0}
## 173                                                                                           {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.3637, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 174                                                                                                                                                                                        {0, 0, 0, 1.5, 0, 0, 0}
## 175                                                                                                                                                                                    {0, 0, 0, -2.1, 0, 0, 0, 0}
## 176                                            {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 177                                                                                                  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.3, 1.9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 178                                                                                                                                            {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.667525, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 179                                                                                                                                                                                                {0, 0, 0, 0, 0}
## 180                                                                                                                                                                                 {0, 0, 0, 0, -0.7, 0, 0, 0, 0}
## 181                                                                                                                                                               {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 182                                                                                                   {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 183                                                                                                                                                                         {0, 0, 0, 0, -0.4, 0, 0, 0, 1.5, 0, 0}
## 184                                                                                                                             {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 185                                                                          {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.2, 0, 0, 0, -1.628, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.5, 1.9, 0, 0, 0}
## 186                                                                                                                            {0, 0, 0, 0, -2.5, 0, 0, 0, -1.406, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 187                                                                                         {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3.233, 0, 0, 0, 0, 0}
## 188                                                                                                                                          {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.7, 0, 0, 0, 0, 0, 0}
## 189                                                                                                                                                                                                {0, 0, 0, 0, 0}
## 190                                                                                                                                                                        {0, 0, 0, 0, 0, 0, 0, 0, -2.7, 0, 0, 0}
## 191                                                                                                                                                  {0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 192                                                                                                                                                                                          {0, 0, 0, 0, 0, 0, 0}
## 193                                                                {0, 0, 0, 1.6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.1, 0, 0}
## 194                                                                                                                                                                               {0, 1.9, 0, 0, 0, 0, 0, 0, 0, 0}
## 195                                                                                                                                                                                    {0, 0, -1.4, 0, 0, 0, 0, 0}
## 196                                                                                                                                                                           {0, -2.7, 0, 0, 0, 0, -2.7, 0, 0, 0}
## 197                                                                                                                                                                                       {0, 0, 0, 0, 0, 0, 0, 0}
## 198                                                                                                       {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.7, 0, 0, 0, 0, -2.1, 0, 0, -1.8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 199                                                                                                                                                                                 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 200                                      {0, 0, 0, 0, 0, 1.258, 0, 0, 0, 0, 0, -0.962, 1.702, 0, 0, 0, 0, 0, 0, -1.7, -2.3, 0, 0, 0, 0, 0, 0, -1.7, -2.3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.7, 0, 0, 0, 0}
## 201                                                                                                                                                                                             {0, 0, 0, 0, 0, 0}
## 202                                                                                                            {0, 0, 0, -1.2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3.6, 0, 0, 0, 0, -1.8, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 203                                                                                                                                                                   {0, 0, 0, 0, 0.3, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 204                                                                                  {0, 0, 0, 0, 1.35, 1.1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.85, 2.25, 0, 0, 0, 0, 0, 0, 2.1, 0, 0, 0, 0, 0, -0.75, 0, 0, 0, 0, 0, 0}
## 205                                                                                                                                                               {0, 0, 0, 0, 0, 0, 0, 0, -1.2, 0, 0, 0, 0, 0, 0}
## 206                                                                                                                                                                     {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 207                                            {0, 0, 0, 0, 0, 0, 1.3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.2, 0, 0, 0, 0, 0, 0.888, 0, 0, 0, -1.2, 0, 0, 0, 0, 0, 1.184, 0, 0, 0, 0, 0, 0, 0, 0}
## 208                                                                                                                                          {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 209                                                                                                                                                                         {0, 0, 0, 0, 0, -2.4, 0, 0, 0, 0, 1.1}
## 210                                                                                                                              {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.7, 0}
## 211                                                                                                                                                              {0, 0, 0, 2.3, 0, 0, 0, 0, 0, 0, 0, 0, 1.1, 0, 0}
## 212                                                                                                                                  {0, 0, 0, 0, 0, 0, 3.1, 0, 0, 0, 0, 0, 0, -1.5, 0, -1.3, 0, -1.6, 0, 0, 0, 0}
## 213                                                               {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.55, 0, 0}
## 214                                                                                                                                                                        {0, 0, 0, 0, 0, 0, 0, 0, 0, -1.4, 0, 0}
## 215                                                                                 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 216                                                                                                                                                                        {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 217                                                                                                                                                    {0, 0, 0, 1.2, 0, 0, 0, 0, 0, 0, 0, 2.17835, 0, 0, 0, 0, 0}
## 218                                                                                                                                {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 219                                                                                                                                                                 {0, 0, 0, 0, 0, 0, -2, 0, 0, -0.5, 0, 0, 0, 0}
## 220                                                                           {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 221                                                                                                                           {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 222                                                                           {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 223                                                                                                                                          {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 224                                                                                                                                                {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 225                                                                                                                                                                                          {0, 0, 0, 0, 0, 0, 0}
## 226                                                                                                                                                                        {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 227                                                                                                                                                                                          {0, 0, 0, 0, 0, 0, 0}
## 228                                                                                                                                                                                    {0, 0, 0, 0, 0, 0, 0, 0, 0}
## 229                                                                                                                                                                        {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 230                                                                                                                                                                                    {0, 0, 0, 0, 0, 0, 0, 0, 0}
## 231                                                                                                                                 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 232                                                                                                                                                                           {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 233                                                                                                                                                                                    {0, 0, 0, 0, 0, 0, 0, 0, 0}
## 234                                                                                                                                                               {-2.2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 235                                                                                                                                                                                  {0, 0, 0, 0, 0, 0, 0, -2.368}
## 236                                                                                                                       {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.6, 0, 1.9, 0, 0, 0, 0, 0, 0, 0, 0}
## 237                                                                                                                                                                 {0, 0, 0, 0, 0, 0, 2.093, 0, 0, 0, 0, 0, 0, 0}
## 238                                                                                                                                                                                       {0, 0, 0, 0, 0, 0, 0, 0}
## 239                                                                                                   {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 240                                                                                            {0, 1.7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 241                                                              {0, 0.7, 0, 0, 0, -0.6, 0, 0, 0, 0, 0, 0, 0, 2.25, 0, 0, 0, 0, 2.55, 0, 0, -3.45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.882475, 0, 0, 0, 0, 0, 0, 0}
## 242                                                                                                                                                    {0, 0, 0, 0, 0, 0, 0, 0, 0.3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 243                                                                                                                  {-1.2, 0, 0, 0, 0, 1.7, 0, 0, 0, 0, 0, 0, 0, 0, 1.5, 0, 0, 0, 0, 0, 0, 0, 2.3, 0, 0, 0, 0, 0}
## 244                                                                                                                  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 245                                                                                      {0, 0, 0, 0, 0, -2.2, 0, 0, 0, 0, 0, 0, -1.2, 0, 0, 0, -1, 0, 0, -1.2, 0, 0, 0, 0, -1.7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 246                                                                                                                                                               {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 247                                            {0, 0, 0, 0, 0, 0, 0, -0.8, 0, 0, 0, 0, 0, 2.3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3.1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 248                                                                                                                                                                      {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.1}
## 249                                                                                                                                                                                                   {0, 0, 0, 0}
## 250                                                                                                                             {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.8, 0, 0, 0, 1.78535, 0, 0, 0, 0, 0, 0, 0, 3.1, 0}
## 251                                                                                                                                                                           {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 252                                                                                                       {3.033, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.3, 0, 0, 0, 2.3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 253                                                                                                                                                                                            {0, 0, 0, -1, 0, 0}
## 254                                                                                             {-1.8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.1, 0, 0, 0, 0, 0, 0, 0.962, 0, 0}
## 255                                                                                                      {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.3, 0, 0, 0, 0, 0, 0, -3.37835, 0, 0}
## 256                                                                                                                                                   {0, 0, 0, 0, -1.3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 257                                                                                                                                                                      {0, 0, 0.3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 258                                                                     {0, 0, -0.85, -0.35, 0, 0, 0, 0, 0, 0.777, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.9, 0, 0, 0, 0, 0.15, 0, 0, 0, 0, 0, 0}
## 259                                                                                                                                        {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.5637, 0, 0}
## 260                                                                                                          {0, 0, 0, -1.1, 0, 0, 0, 0, 0, 0, 0, -1.1, 0, 0, 0, 0, -1.1, 0, 0, 0, 0, 0, 0, -2.3, 0, 0, 0, 0, 1.3}
## 261                                                                                                           {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.3, 0, 0, 0, 0, 0, 0, 0}
## 262                                                                                              {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.989175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 263                                                                             {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.7, 0, 0, 0, 0, 0, 0, 0, 0, 2.6, 0, 0}
## 264                                                                                                                                                                              {0, 0, 0, 0, 0, 0, 0, 0, 0, -1.6}
## 265                                                                                                                                                                         {0, 0, 0, 0, 0, 3.2, 0, 0, 0, 0, 0, 0}
## 266                                                                                                                                                                                             {0, 0, 0, 0, 0, 0}
## 267                                                                                                       {0, 0.75, 0, 0, 0, 0, 0.85, 0, 0, -3.45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.882475, 0, 0, 0, 0, 0, 0, 0}
## 268                                                                                                                                                      {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 269                                                                                                                  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 270                                                                                                                                                                                          {0, 0, 0, 0, 0, 0, 0}
## 271                                                                                                                                                                                             {0, 0, 0, 0, 0, 0}
## 272                                                                                                                                                                           {0, 0, 0, -3.7, 0, 0, 0, 0, 0, 0, 0}
## 273                                                                                         {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.7, 0, 0, -2.1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, 0, 2.22}
## 274                                                       {0, 0, 0, -1.2, 0, 0, 0, 0, 1.2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.3, 1.9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.9, 0, 0, 0, 0}
## 275                                                                                                                          {0, 0, 0, 0, 0, 1.4, 0, 0, 0, 0, 0, -0.8, 0, 0, 0, 0, 0, 0, 0, -1.5, 0, 0, 3.2, 0, 0}
## 276                                                                                                                                 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.2, 0, 0, 0, 0, 0}
## 277                                                                                                                                                   {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.2, 0}
## 278                                                                                                                                                                                             {0, 0, 0, 0, 0, 0}
## 279                                                                                          {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 280                                        {0, 0, 0, 0, 0, 1.1, 0, 0, 0, 3.2, 0, 0, 0, 0, 0, 1.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.3, 0, 0, 0, 0, 0, 0, 0, 0}
## 281                                                                                                                                                  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.007, 0}
## 282                                                                                                                                {0, 0, 1.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.6, 0, 0, 0, 0, 0, 0, 0, -0.4}
## 283                                                                                              {0, 0, 0, 0, 0, 0, -1.15, 0, 0, 0, 0, 2.664, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 284                                                                                                                                                                                       {0, 0, 0, 0, 0, 0, 0, 0}
## 285                                                                                                                           {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 286                                                                                                                                                                                       {0, 0, 0, 0, 0, 0, 0, 0}
## 287                                                        {0, 0, 0, 0, 1.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 288                                                                                                                                                                                             {0, 0, 0, 0, 0, 0}
## 289                                                                                                                                                                                                   {0, 0, 0, 0}
## 290                                                                                                                                     {3.033, 0, 0, 1.7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.2, 0, 0, 0, 0, 0, 0, 0, 0}
## 291                                                                                                                                                      {0, 0, -0.6, 0, 0, 0, 0, 1.95, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 292                                                                                                                                                                                          {0, 0, 0, 0, 0, 0, 0}
## 293                                                                 {0, 0, 0, 0, 0, 0, 0, 0, 2.8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 294                                                                                                                                                                                             {0, 0, 0, 0, 0, 0}
## 295                                                               {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.3, 0, 0, 0, 0, 0, 0, 0, 0}
## 296                                                                                                                                                                                       {0, 0, 0, 0, 0, 0, 0, 0}
## 297                                                                                                                     {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 298                                                                              {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.6, 0, 0, 0, 0}
## 299                                                                                                                                                      {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.3}
## 300                                                                                                                                                                                 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 301                                                                                                                                                                                          {0, 0, 0, 0, 0, 0, 0}
## 302                                                                                                                                             {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.4, 0, 0, 0, 0, 0, -2.4}
## 303                                                                                                                                               {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.2, 0, 0, 0, 0, 1.4, 0}
## 304                                                                                                                                                                     {-1.3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 305                                                                                                                                                                                                   {0, 0, 0, 0}
## 306                                                                                                                                                    {0, 0, 0, 0.3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 307                                                                                                                                                                                                {0, 0, 0, 0, 0}
## 308                                                                {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 309                                                                                                                                                      {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 310                                                                                                                                                                              {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 311                                                                                                                                     {0, 0, 0, 0, -2.6, 0, 0, 0, 0, 0, 0, 1.85, 0, 0, 0, 0, 3.2, 0, 0, 0, 0, 0}
## 312                                                                                                                                       {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.7, 0, 0, 0, 0, 0, 0, 0}
## 313                                                                                                      {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.4, 0, 0, 0, 0, 0.97835, 0, 0}
## 314                                                         {0, 0, 0, 0, 0, 0, 0, 0, -2.2, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.6, 0, 0, 0, 0, -2.2, 0, 0, -2.2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.3, 0, 0, 0, 0, 0, 0}
## 315                                                                                                                                                                                 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 316                                                                                                                                                    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.5, 0, 0, 0, 0, 0, -1.6}
## 317                                                                            {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.55, 0, 0, 0, 0, 0, 0}
## 318                                                                                                                                                         {0, 0, 0, 0, 0, 0, 0, 0, -1.2, 0, 0, 0, 0, 0, 0, -1.7}
## 319                                                                                                                                     {0, 0, 0, 0, 0, 0, 0, 0, -1.7, 0, 0, 0, 0, 0, 1.7637, 0, 0, 0, 0, 0, 0, 0}
## 320                                               {0, 0, 0, 0, 3.233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 321                                                                                                                                                                                        {0, 0, 0, 0, 0, 0, 1.4}
## 322                                                                                             {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3.6, 0}
## 323                                                          {0, 0, 0, 0, 0, 0, 1.9, 0, 0, 0, 0, 1.5, 0, 0, 0, 0, 0, 0, 0, 3.2, 0, 0, 0, 0, 1.8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 324                                                                                                                                         {0, 0, 0, 0, 0, 1.7, 0, 0, 0, 1.8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 325                                                                                                                             {0, 0, 0, 1.7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1.793}
## 326                                                                                                                                                                        {0, 0, -1.6, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 327                                                                                                     {0, 0, 0, 0, 0, 0, 0, 0, 0, 1.9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 328                                                                                                                                                   {-1.2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 329                                                                                                                {-1.35, 0, 0, 0, 0, 0, -1.35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 330                                                                                             {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 331                                                                                                        {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.033, 0, -2.433, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 332                                                                                                                                                                                 {0, 0, 0, 0, 0, 0, 0, 0, -2.8}
## 333                                                                                                                                                                                       {0, 0, 0, 1, 0, 0, 0, 0}
## 334                                                                                                                                                                                             {0, 0, 0, 0, 0, 0}
## 335                                                                                                                                           {0, 0, 1.6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 336                                                                                                                                                                                                      {0, 0, 0}
## 337                                                                                                                                                      {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 338                                                                 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 339                                                                                                                                          {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.95, 0, 0, 0, 2.55, 0, 0, 0, 0}
## 340                                                                                                                                             {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 341                                                                                                                                                                                 {0, 0, 0, 0, 0, 0, 0, -3.4, 0}
## 342                                                                                                            {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1.3, 0, 0, 0, 0, 0, 0, 0}
## 343                                                                                        {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.2, 0, 0, -3.3, 0, -2.6, 0, 0, 0, 0, 0, 0, 0, 0}
## 344                                          {0, 0, -1.332, 0, 0, 0, 0, 0, 0, -3.6, 0, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.4}
## 345                                                                                                                  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 346                                                                                                      {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 347                                                                                                                                                                   {0, 0, 0, 0, 1.9, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 348                                                                                                                                                                    {2.133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 349                                                                                                                                                                                                {0, 0, 0, 0, 0}
## 350                                                         {0, 0, 0, 0, 1.2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.75, 0, -1.65, 0, 0, -1.5, 0, 0, 0, 0, 2.85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 351                                                                      {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.5, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 352                                                                                                                                           {0, 0, 0, 0, 0.8, -0.9, -2.9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 353                                                                                                                                                                  {0, 0, 0, 0, 0, 0, 0, -0.1, 0, 0, 0, 0, 0, 0}
## 354                                                                                                                                                                                  {0.9, 0, 0, 0, 0, 0, -2.3, 0}
## 355                                                                                                                                                                                          {0, 0, 0, 0, -1.5, 0}
## 356                                                                                                                                                                                          {0, 0, 0, 0, 0, 0, 0}
## 357                                                                                              {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.9895, 0, 0, 0, 0, 0, 0, 0, 0, -5.5995, 0}
## 358                                                                                 {0, 0, 0, 0, 0, -2.1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 359                                                                                                    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.3, 0, 0, 0, 0, 0, 0}
## 360                                                                                                                    {0, 0, 0, 2.6, 0, 0, 0, 0.1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.1, 0, 0, -0.9}
## 361                                                                                                                                                                      {0, 0, 0, 0, 0, 0, 0, 0, -1.9, 0, 1.3, 0}
## 362                                                                                                                                                                                                      {0, 0, 0}
## 363                                                                  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 364                                  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.65, 0, 0, 0, 0.75, 0, 0, 0, 0, 1.6, 0, 0, 0.95, 0, -1.2, 0, 0.95, 0, 0, 0, 0, 0, 0, 0, -1.665, 0, 1.776, 0, 0, 0, 0, 0, 0, 0, 0}
## 365                                                                                                                                                                                 {0, 0, 0, 0, 0, -2.3, 0, 0, 0}
## 366                                                       {0, 0, 0, 0, 0, 0, 0, -0.777, 0, 0, -1.7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.4, 0}
## 367                                                                                              {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.2, 0}
## 368                                                                                                                                   {0, 0, 0, 0, -1.9, 0, 0, 0, 0, 0, 0.3, 0, -2.3, 0, 0, 1.5, 0, 0, 0, 0, 0, 0}
## 369                                                                                                 {0, 0, 0, 0.9, 0, 0, 0, -2.3, 0, 0, 0, 0, 0, 0, -2.3, 0, -0.5, 0, -1.1, 0, -1.6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 370                                                                                                                                                                         {0, 0, 0, 0, 0, 0, 0, 0, 0, -1.406, 0}
## 371                                                                                                                                                                {0, 0, -0.074, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 372                                                                                   {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.3, -1.9, 0, 0, 0, 0.7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 373                                                                                                                                                                              {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 374                                                      {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 375                                                                 {0, 1.7, 0, 0, 0, 0, 3.1, 0, 0, 0, 0, 0, 0, 0, 0, -1.493, 0, 0, -1.2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 0, 0, 0}
## 376                                                                                                                                                      {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 377                                                                                                                    {0, 0, 0, 0, 0, 0, 1.9, 0, 0, 0, 1.1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0}
## 378                                                                                                                                                                                             {0, 0, 0, 0, 0, 0}
## 379                                                                                                                                                                                       {0, 0, 0, 0, 0, 0, 0, 0}
## 380                                                                                                                                                               {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 381                                                                                                                                                       {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.4, 0, 0, 0, 0}
## 382                                                                                                                                                                                  {0, 0, 0, 0, 0, 0, 0, 0, 1.5}
## 383                                                                                                                                                               {-2.2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 384                                                                                     {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.7, 0, 0, 0, 2.6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.7, 0, 1.7, 0, 0, 0}
## 385                                                                                                                                                                   {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.1, 0}
## 386                                                                                                                                                                           {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 387                                                                                                                                                                                             {0, 0, 0, 0, 0, 0}
## 388                                                                                                                                                                                 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 389                                                                                                                                                                               {0, 0, 0, 0, 0, 0, 0, 0, 1.3, 0}
## 390                                                                                                                                 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 391                                                                              {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 392                                                                                             {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 393                                                                                                                                                       {0, 0, 0, 0, 1.8, 0, 0, 0, 0, 0, 0, 0, -1.2, 0, 0, 0, 0}
## 394                                                          {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.9, 0}
## 395                                                                                                                                                                      {0, 0, 0, -3.1, 0, 0, 0, 2.2, 0, 0, 0, 0}
## 396                                                                                                                                                                                    {0, 0, 0, 0, 0, 0, 0, 0, 0}
## 397                                                                                                                                                                                                   {0, 0, 0, 0}
## 398                                                                                                                                                                                                   {0, 0, 0, 0}
## 399                                                                                           {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 400                                                                                                                                                                     {0, 0, 0, 0, 0, 0, 0, 0, 0, -1.2, 0, 0, 0}
## 401                                                                                                                {0, 0, 0, 0, 0, 1.3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.1}
## 402                                                                                                                                                   {0, 0, 0, 0, 0, 0, -0.9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 403                                                                                {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.9, 0, 0.3, 0, 0, 0, 0, 0, 1.1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 404                                                                                                                                                         {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.1}
## 405                                                                                                                                                                                                   {0, 0, 0, 0}
## 406                                                                         {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 407                                                                                                                                                                                                   {0, 0, 0, 0}
## 408                                                                                                                                                                              {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 409                                                                                                                                                                                    {0, 0, -1.1, 0, 0, 0, 0, 0}
## 410                                                                                                                                                       {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.6, 0, 0, 0, 0}
## 411                 {0, 0, 0, 0, 0, 0, 0, 0, 0, 1.35, 0, 0, 0, 0, 0, -1.15, 0, 0, 0, 0, 2.25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 412                                                                                                                    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.9, 0, 0, 0, 0, 0, 0, 0, 0}
## 413                                                                                                              {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3.4, 0, 1.1, 0, 0, 0, 1.5, 0, 0, 0, -0.6, 0, 0}
## 414                                                                                                                                                               {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 415                                                                                {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 416                                                                                                                           {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 417                                                                                                                   {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.7}
## 418                                                                                                                                                                                           {0, 0, 0, 0, 0.1, 0}
## 419                                                         {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 420                                                                                                                                  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.3, 0, 0, 0, 0, -2.3, 0, 0, 0, 0, 0}
## 421                                                                                                                                  {0, 1.9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.35, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 422                                                     {1.7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.8, 0, -3.133, 0, 0, 0, 0, -2.1, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, -0.9, 0, 0, 0, 0, 0, 0}
## 423                                                                                                                                                                                    {0, 0, 0, 0, 0, 0, 0, 0, 0}
## 424                                                                                                                                                                              {0, 0, 0, -1.4, 0, 0, 0, 0, 0, 0}
## 425                                                                                                                                                                                          {0, 0, 0, 0, 0, 0, 0}
## 426                                                                                                                                                                                          {0, 0, 0, 0, 0, 0, 0}
## 427                                                                                                                                                                        {0, 0, 0, 0, 0, -0.3, 0, 0, 0, 0, 0, 0}
## 428                                                                                                                                                              {0, -0.85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 429                                                                                                                                                                                          {0, 0, 0, 0, 0, 0, 0}
## 430                                                                                                         {0, 0, 0, 0, 0, 1.2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.7, 0, 0, 0, 0, -0.814, 0, 0, 0, 0, 0}
## 431                                                                                                                                                                                 {0, 0, 0, 0, 0, 0, 0, 0, 2.35}
## 432                                                                                                                            {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.1, 0}
## 433                                                                                                                                                                                        {0, 0, 1.1, 0, 0, 0, 0}
## 434                                                                                                                                                                              {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 435                                              {0, 0, 0, 0, -1.2, 0, 0, 0, 0, 0, 0, 0, -0.074, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 436                                                                                                                                                         {1.3, 0, 0, 1.8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.9, 0}
## 437                                                                     {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 438                                                                                                                  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 439                                                                                                                                                                                {0, 1.2, 0, 0, 0, 0, 0, 0, 1.5}
## 440                                                                                                          {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.9895, 0, 0, 0}
## 441                                                                                     {0, 0, 0, 0, 0, 0, 0, 0, 1.8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 442                                                  {0, 0, 0, 0, 0, 0, -0.65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.7, 0, 0, 0, -2.109, 0, 0, 0, 0}
## 443                                                                                                                                                          {0, 0, 1.7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 444                                                                                                                                                                                 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 445                                                                                                                                                                                                   {0, 0, 0, 0}
## 446                                                                    {0, 0, 0, 0, 0, 1.3, 0, 0, 0, 0, 0, 1.9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3.6, 0, 0, 0, -1.7, 0}
## 447                                                                                                                                                                                 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 448                                                                                                                                                    {0, 0, 0, 0, 0, -2.1, 0, 0, 1.5, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 449                                                                                                                               {0, 0, 0, -2.7, 0, 0, 2.3, 0, 0, 0, 0, 0, 0, 0, 0, -1.2, 0, 0, 0, 0, 0, 0, 0, 0}
## 450                                                                  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.15, 0, 0, -1.4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.45, 0, 2.55, 0, 0, 0, 0, 0}
## 451                                             {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.85, 0, 0, 0, 0, 0}
## 452                                                                                                                   {0, 0, 0, 0, 0, 0, 0, 0, 0, 1.2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 453                                                                                                                                                                           {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 454                                                                                                                                                                {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.333}
## 455                                                                                                                               {0, 0, 0, 0, 0, 0, -2.9, 0, 0, 0, -2.793, 0, 0, 1.1, 0, 0, 0, 0, 0, 1.3, 0, 1.3}
## 456                                                                                                                                                                           {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 457                                                                                                                                                                  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 458                                                                             {0, 0.8, 0, 0, 0, 0, 0, 0, 0, 0, 0.9, 0, -3.2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 459                                                                                                                                                                                       {0, 0, 0, -2.3, 0, 0, 0}
## 460                                                                                                                                                   {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 461                                                                                                                                                               {0, 0, 0, 0, 0, 0, 0, 0, 0, -1.3, 0, 0, 0, 0, 0}
## 462                                                                                                                                                                                             {0, 0, 0, 0, 0, 0}
## 463                                                                                                                                                 {0, 0, 0, 3.2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 464                                                                                     {0, 0, 0, 0, 0, 0, -1.11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.8, 0, 0, 0, 0, 0, 0, 0, 0, -1.4, 0, 0, 0, 1.5, 0}
## 465                  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.9, 0, 0, 0, -0.693, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.036, 0, 0, 0, 0, 0, 0.3, 0}
## 466                                                                                                                                                                                          {0, 0, 0, 0, 0, 0, 0}
## 467                                                                                      {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4.1895, 0, 0, 0, 0, -0.75, 0, 0, 0, 0, 0, 0}
## 468                                          {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.85, 0, 0, 0, 0, 1.95, 0, 0, 0, 0, 0}
## 469                                                                                                                                                                  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.2}
## 470                                                                                                                                                     {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.733, 0, 0, 0, 0, 0, 0, 0}
## 471                                                                                                            {1.4, 0, 0, 0, -1.8, 1.4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.8}
## 472                                                                                                                                                                      {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.8}
## 473                                                                                                            {0, 0, 0, -0.9, 0, -1.2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 474                                                                                                                                                                                    {0, 0, 0, 0, 0, 0, 0, 0, 0}
## 475                                                                                                                {0, 0, 0, 0, 1.3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.9, 0, 0, 0, 0, 0, 0, 0, 0}
## 476                                                                                                                                         {0, 0, 0, 0, 0, -3.2, 0, 0, 0, 0.666, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 477                                                                                                                                                                     {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 2.35}
## 478                                                                                                   {0, 0, 0, 0, 0, 0, 0, 0, -1.3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 479                                                         {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 480                                                                                                                                                                              {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 481                                                                                                                                                                                  {0, 0, 0, 0, 0, 0, 0, -0.888}
## 482                                                                                                                                                                                                      {0, 0, 0}
## 483 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.5, -2.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.1, -1.7, 0, 0, 0, 0, 0, 0, 0, 0, 0.8, 0, -1, 0, 0, 0, 0, 0, 0.8, 0, 0.5, 0, 0, 0, -3.6, 0, 0, 0, 0, 1.9}
## 484                                                                                                                                                {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 485                                                                                                                                                                              {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 486                                                                                                    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.2, 0, 0, 0, 0, 1.11, 0, 0, 0, 2.35}
## 487                                                                                                                                 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 488                                                                                                                                                    {0, 0, 0, -2.146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.7, 0}
## 489                                                                                                {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 490                                                                                                                                                                                                {0, 0, 0, 0, 0}
## 491                                                              {0, 0.7, 0, 0, 0, -0.6, 0, 0, 0, 0, 0, 0, 0, 2.25, 0, 0, 0, 0, 2.55, 0, 0, -3.45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.882475, 0, 0, 0, 0, 0, 0, 0}
## 492                                                                                                                                                                                          {0, 0, 0, 0, 0, 0, 0}
## 493                                                                                            {0, 0, 0, 0, 3.2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.5, 0, 0, 0, 0, 0, 0, 0, 0, -1.2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 494                                {0, 0, 0, 0, 0, 0, 0, 0.4, -0.8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.5, 0, 0, 0, 0, 0, -2.9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 495                                                                     {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 496                                                                                                                                                                                    {0, 0, 0, 0, 0, 0, 0, 0, 0}
## 497                                                                                                                                                                              {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
## 498                                                                                                                {0, 2.133, 2.133, 0, 0, 0, 0, -2.833, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3.533, -2.833, 0, 0}
## 499                                                                                                                                                                                             {0, 0, 0, 0, 0, 0}
## 500                                                 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.55, 0, 0, 0, 0, 0, 0, 0, 0, 0}
##     compound   pos   neu   neg but_count
## 1      0.906 0.339 0.661 0.000         0
## 2      0.128 0.091 0.909 0.000         0
## 3     -0.202 0.081 0.810 0.109         0
## 4      0.791 0.206 0.794 0.000         0
## 5     -0.361 0.059 0.812 0.129         0
## 6      0.000 0.000 1.000 0.000         0
## 7      0.000 0.000 1.000 0.000         0
## 8      0.000 0.000 1.000 0.000         0
## 9      0.637 0.219 0.781 0.000         0
## 10    -0.318 0.000 0.887 0.113         0
## 11    -0.318 0.086 0.773 0.142         0
## 12    -0.510 0.000 0.901 0.099         0
## 13     0.000 0.000 1.000 0.000         0
## 14     0.000 0.000 1.000 0.000         0
## 15     0.000 0.000 1.000 0.000         0
## 16     0.000 0.000 1.000 0.000         0
## 17     0.294 0.092 0.847 0.061         0
## 18    -0.267 0.118 0.740 0.142         0
## 19     0.000 0.000 1.000 0.000         0
## 20    -0.632 0.085 0.688 0.227         0
## 21     0.933 0.305 0.695 0.000         0
## 22    -0.459 0.000 0.786 0.214         0
## 23     0.699 0.201 0.799 0.000         0
## 24     0.361 0.094 0.906 0.000         0
## 25     0.000 0.000 1.000 0.000         1
## 26     0.000 0.000 1.000 0.000         0
## 27    -0.226 0.087 0.796 0.118         0
## 28     0.203 0.119 0.758 0.123         1
## 29    -0.700 0.000 0.866 0.134         0
## 30     0.000 0.000 1.000 0.000         0
## 31     0.000 0.000 1.000 0.000         0
## 32     0.670 0.119 0.856 0.025         0
## 33    -0.933 0.094 0.450 0.456         1
## 34    -0.103 0.000 0.928 0.072         0
## 35     0.000 0.000 1.000 0.000         0
## 36    -0.893 0.000 0.766 0.234         0
## 37     0.224 0.068 0.932 0.000         0
## 38     0.440 0.326 0.674 0.000         0
## 39     0.153 0.099 0.813 0.087         0
## 40     0.000 0.000 1.000 0.000         0
## 41     0.527 0.339 0.466 0.195         1
## 42     0.302 0.090 0.859 0.051         1
## 43    -0.580 0.000 0.905 0.095         0
## 44    -0.572 0.075 0.733 0.192         1
## 45     0.141 0.045 0.955 0.000         1
## 46    -0.727 0.048 0.797 0.155         0
## 47     0.000 0.000 1.000 0.000         0
## 48     0.000 0.000 1.000 0.000         0
## 49    -0.004 0.053 0.894 0.053         0
## 50    -0.379 0.021 0.929 0.050         1
## 51    -0.869 0.061 0.662 0.277         0
## 52    -0.644 0.000 0.413 0.587         0
## 53    -0.878 0.000 0.792 0.208         0
## 54     0.000 0.000 1.000 0.000         0
## 55    -0.912 0.000 0.802 0.198         0
## 56    -0.586 0.066 0.714 0.220         0
## 57     0.214 0.038 0.962 0.000         2
## 58     0.000 0.000 1.000 0.000         0
## 59    -0.713 0.000 0.844 0.156         0
## 60    -0.785 0.048 0.776 0.176         0
## 61     0.660 0.293 0.707 0.000         0
## 62     0.000 0.000 1.000 0.000         0
## 63    -0.190 0.093 0.800 0.107         2
## 64     0.727 0.145 0.787 0.068         0
## 65     0.848 0.198 0.764 0.038         0
## 66    -0.105 0.084 0.842 0.074         0
## 67     0.000 0.000 1.000 0.000         0
## 68     0.000 0.000 1.000 0.000         0
## 69    -0.178 0.000 0.946 0.054         0
## 70    -0.296 0.000 0.864 0.136         0
## 71     0.103 0.141 0.756 0.103         0
## 72     0.000 0.000 1.000 0.000         0
## 73     0.000 0.000 1.000 0.000         0
## 74     0.000 0.000 1.000 0.000         0
## 75     0.519 0.183 0.817 0.000         0
## 76     0.612 0.227 0.773 0.000         0
## 77    -0.296 0.000 0.945 0.055         0
## 78     0.979 0.422 0.578 0.000         0
## 79     0.402 0.252 0.748 0.000         0
## 80    -0.854 0.000 0.824 0.176         0
## 81     0.000 0.000 1.000 0.000         1
## 82     0.000 0.000 1.000 0.000         0
## 83     0.000 0.000 1.000 0.000         0
## 84    -0.294 0.176 0.564 0.260         0
## 85     0.000 0.000 1.000 0.000         0
## 86     0.000 0.000 1.000 0.000         0
## 87    -0.674 0.000 0.570 0.430         0
## 88     0.000 0.000 1.000 0.000         0
## 89    -0.802 0.000 0.789 0.211         0
## 90    -0.563 0.000 0.838 0.162         0
## 91     0.000 0.000 1.000 0.000         0
## 92     0.758 0.149 0.851 0.000         0
## 93    -0.670 0.000 0.827 0.173         0
## 94     0.351 0.153 0.795 0.052         1
## 95     0.627 0.208 0.709 0.083         0
## 96     0.000 0.000 1.000 0.000         0
## 97     0.000 0.000 1.000 0.000         0
## 98    -0.527 0.057 0.806 0.137         0
## 99     0.459 0.150 0.850 0.000         0
## 100    0.000 0.000 1.000 0.000         0
## 101    0.000 0.000 1.000 0.000         0
## 102    0.273 0.130 0.870 0.000         0
## 103   -0.572 0.181 0.542 0.278         0
## 104   -0.637 0.092 0.654 0.254         0
## 105    0.735 0.225 0.694 0.081         0
## 106    0.000 0.000 1.000 0.000         0
## 107    0.273 0.148 0.769 0.083         0
## 108    0.000 0.000 1.000 0.000         1
## 109   -0.340 0.127 0.706 0.167         0
## 110    0.000 0.000 1.000 0.000         0
## 111   -0.735 0.000 0.871 0.129         0
## 112   -0.296 0.146 0.633 0.222         0
## 113    0.000 0.000 1.000 0.000         0
## 114   -0.103 0.000 0.965 0.035         0
## 115    0.551 0.084 0.916 0.000         0
## 116   -0.296 0.000 0.929 0.071         0
## 117    0.361 0.152 0.848 0.000         0
## 118   -0.620 0.000 0.887 0.113         0
## 119    0.000 0.000 1.000 0.000         0
## 120    0.440 0.106 0.845 0.049         0
## 121    0.000 0.000 1.000 0.000         0
## 122    0.258 0.203 0.677 0.120         1
## 123    0.494 0.181 0.819 0.000         0
## 124    0.421 0.128 0.872 0.000         0
## 125   -0.402 0.000 0.649 0.351         0
## 126    0.273 0.055 0.945 0.000         0
## 127   -0.511 0.000 0.809 0.191         0
## 128    0.519 0.358 0.642 0.000         0
## 129   -0.681 0.000 0.787 0.213         0
## 130    0.892 0.167 0.833 0.000         1
## 131   -0.402 0.000 0.917 0.083         0
## 132    0.000 0.000 1.000 0.000         0
## 133   -0.666 0.049 0.797 0.154         0
## 134    0.637 0.412 0.588 0.000         0
## 135    0.202 0.116 0.800 0.084         0
## 136    0.570 0.070 0.930 0.000         1
## 137   -0.193 0.071 0.828 0.101         0
## 138   -0.340 0.000 0.902 0.098         0
## 139    0.660 0.310 0.690 0.000         0
## 140    0.666 0.206 0.794 0.000         0
## 141    0.799 0.189 0.811 0.000         1
## 142    0.000 0.000 1.000 0.000         0
## 143   -0.325 0.113 0.745 0.142         0
## 144   -0.380 0.104 0.731 0.165         0
## 145   -0.111 0.129 0.720 0.151         0
## 146   -0.691 0.110 0.528 0.361         0
## 147   -0.318 0.000 0.927 0.073         0
## 148    0.296 0.121 0.879 0.000         0
## 149    0.759 0.525 0.475 0.000         0
## 150    0.000 0.000 1.000 0.000         0
## 151    0.557 0.217 0.783 0.000         0
## 152   -0.340 0.000 0.902 0.098         0
## 153   -0.701 0.000 0.766 0.234         0
## 154    0.000 0.000 1.000 0.000         1
## 155    0.241 0.167 0.716 0.118         0
## 156    0.000 0.000 1.000 0.000         0
## 157    0.258 0.203 0.677 0.120         1
## 158   -0.907 0.000 0.750 0.250         0
## 159    0.000 0.000 1.000 0.000         0
## 160    0.511 0.142 0.858 0.000         0
## 161   -0.402 0.000 0.934 0.066         0
## 162    0.000 0.000 1.000 0.000         0
## 163    0.000 0.000 1.000 0.000         0
## 164    0.451 0.118 0.803 0.078         0
## 165   -0.433 0.000 0.935 0.065         0
## 166   -0.679 0.000 0.892 0.108         0
## 167    0.414 0.112 0.888 0.000         0
## 168    0.000 0.000 1.000 0.000         0
## 169    0.000 0.000 1.000 0.000         0
## 170   -0.402 0.000 0.597 0.403         0
## 171    0.000 0.000 1.000 0.000         0
## 172   -0.296 0.000 0.944 0.056         0
## 173    0.575 0.094 0.906 0.000         0
## 174    0.361 0.294 0.706 0.000         0
## 175   -0.477 0.000 0.693 0.307         0
## 176   -0.214 0.000 0.966 0.034         1
## 177    0.735 0.158 0.842 0.000         0
## 178    0.567 0.162 0.838 0.000         1
## 179    0.000 0.000 1.000 0.000         0
## 180   -0.178 0.000 0.825 0.175         1
## 181    0.000 0.000 1.000 0.000         0
## 182    0.000 0.000 1.000 0.000         0
## 183    0.273 0.194 0.698 0.109         0
## 184   -0.459 0.000 0.897 0.103         0
## 185   -0.473 0.063 0.785 0.152         0
## 186   -0.710 0.000 0.796 0.204         0
## 187   -0.604 0.032 0.863 0.104         0
## 188   -0.248 0.000 0.913 0.087         0
## 189    0.000 0.000 1.000 0.000         0
## 190   -0.572 0.000 0.748 0.252         0
## 191   -0.250 0.000 0.905 0.095         0
## 192    0.000 0.000 1.000 0.000         0
## 193   -0.402 0.052 0.842 0.106         0
## 194    0.440 0.244 0.756 0.000         0
## 195   -0.340 0.000 0.745 0.255         0
## 196   -0.813 0.000 0.519 0.481         0
## 197    0.000 0.000 1.000 0.000         0
## 198   -0.494 0.072 0.771 0.157         0
## 199    0.000 0.000 1.000 0.000         0
## 200   -0.893 0.082 0.643 0.275         0
## 201    0.000 0.000 1.000 0.000         0
## 202   -0.862 0.000 0.738 0.262         1
## 203    0.077 0.091 0.909 0.000         0
## 204    0.917 0.316 0.647 0.038         1
## 205   -0.296 0.000 0.864 0.136         0
## 206    0.000 0.000 1.000 0.000         0
## 207    0.243 0.116 0.803 0.080         0
## 208    0.000 0.000 1.000 0.000         0
## 209   -0.318 0.145 0.621 0.234         0
## 210   -0.402 0.000 0.903 0.097         0
## 211    0.660 0.293 0.707 0.000         0
## 212   -0.318 0.139 0.610 0.251         0
## 213    0.550 0.072 0.928 0.000         1
## 214   -0.340 0.000 0.821 0.179         0
## 215   -0.511 0.000 0.924 0.076         0
## 216    0.000 0.000 1.000 0.000         0
## 217    0.657 0.264 0.736 0.000         0
## 218    0.292 0.083 0.917 0.000         0
## 219   -0.542 0.000 0.727 0.273         0
## 220   -0.103 0.000 0.968 0.032         0
## 221    0.000 0.000 1.000 0.000         0
## 222   -0.318 0.000 0.948 0.052         0
## 223    0.000 0.000 1.000 0.000         0
## 224    0.000 0.000 1.000 0.000         0
## 225    0.000 0.000 1.000 0.000         0
## 226    0.250 0.143 0.857 0.000         0
## 227    0.000 0.000 1.000 0.000         0
## 228    0.000 0.000 1.000 0.000         0
## 229    0.000 0.000 1.000 0.000         0
## 230    0.000 0.000 1.000 0.000         0
## 231    0.000 0.000 1.000 0.000         0
## 232    0.000 0.000 1.000 0.000         0
## 233    0.000 0.000 1.000 0.000         0
## 234   -0.494 0.000 0.814 0.186         0
## 235   -0.522 0.000 0.675 0.325         0
## 236    0.700 0.182 0.818 0.000         0
## 237    0.475 0.192 0.808 0.000         0
## 238    0.000 0.000 1.000 0.000         0
## 239    0.000 0.000 1.000 0.000         1
## 240    0.679 0.138 0.862 0.000         0
## 241    0.746 0.232 0.655 0.113         2
## 242    0.077 0.067 0.933 0.000         0
## 243    0.784 0.257 0.680 0.062         0
## 244    0.000 0.000 1.000 0.000         0
## 245   -0.883 0.000 0.716 0.284         0
## 246    0.000 0.000 1.000 0.000         0
## 247    0.765 0.127 0.842 0.031         0
## 248    0.273 0.149 0.851 0.000         0
## 249    0.000 0.000 1.000 0.000         0
## 250    0.826 0.293 0.707 0.000         0
## 251    0.000 0.000 1.000 0.000         0
## 252    0.898 0.274 0.726 0.000         0
## 253   -0.250 0.000 0.714 0.286         0
## 254    0.067 0.105 0.823 0.072         0
## 255   -0.717 0.070 0.730 0.200         0
## 256   -0.318 0.000 0.887 0.113         0
## 257    0.077 0.098 0.902 0.000         0
## 258   -0.354 0.068 0.808 0.124         1
## 259    0.144 0.069 0.931 0.000         0
## 260   -0.743 0.064 0.669 0.267         0
## 261    0.612 0.143 0.857 0.000         0
## 262   -0.247 0.000 0.945 0.055         1
## 263    0.743 0.136 0.864 0.000         0
## 264   -0.439 0.000 0.757 0.243         0
## 265    0.670 0.290 0.710 0.000         0
## 266    0.000 0.000 1.000 0.000         0
## 267    0.258 0.203 0.677 0.120         1
## 268    0.000 0.000 1.000 0.000         0
## 269   -0.296 0.000 0.929 0.071         0
## 270    0.000 0.000 1.000 0.000         0
## 271    0.000 0.000 1.000 0.000         0
## 272   -0.691 0.000 0.680 0.320         0
## 273   -0.679 0.073 0.727 0.200         0
## 274    0.839 0.202 0.758 0.040         0
## 275    0.511 0.207 0.658 0.135         0
## 276   -0.296 0.000 0.916 0.084         0
## 277   -0.296 0.000 0.891 0.109         0
## 278    0.000 0.000 1.000 0.000         0
## 279    0.000 0.000 1.000 0.000         0
## 280    0.844 0.171 0.829 0.000         0
## 281    0.252 0.100 0.900 0.000         0
## 282    0.572 0.185 0.764 0.051         0
## 283    0.364 0.094 0.850 0.055         1
## 284    0.000 0.000 1.000 0.000         0
## 285   -0.361 0.000 0.912 0.088         0
## 286    0.000 0.000 1.000 0.000         0
## 287    0.511 0.084 0.916 0.000         0
## 288    0.000 0.000 1.000 0.000         0
## 289    0.000 0.000 1.000 0.000         0
## 290    0.849 0.327 0.673 0.000         0
## 291    0.329 0.151 0.767 0.082         1
## 292    0.000 0.000 1.000 0.000         0
## 293    0.816 0.145 0.855 0.000         0
## 294    0.000 0.000 1.000 0.000         0
## 295   -0.318 0.000 0.952 0.048         0
## 296    0.000 0.000 1.000 0.000         0
## 297    0.000 0.000 1.000 0.000         0
## 298   -0.153 0.000 0.962 0.038         0
## 299   -0.511 0.000 0.837 0.163         0
## 300    0.000 0.000 1.000 0.000         0
## 301    0.000 0.000 1.000 0.000         0
## 302   -0.700 0.000 0.756 0.244         0
## 303    0.607 0.216 0.784 0.000         0
## 304   -0.318 0.000 0.839 0.161         0
## 305    0.000 0.000 1.000 0.000         0
## 306    0.077 0.067 0.933 0.000         0
## 307    0.000 0.000 1.000 0.000         0
## 308    0.440 0.059 0.941 0.000         0
## 309    0.000 0.000 1.000 0.000         0
## 310    0.000 0.000 1.000 0.000         0
## 311    0.535 0.238 0.641 0.121         0
## 312   -0.178 0.000 0.928 0.072         0
## 313   -0.181 0.057 0.865 0.078         0
## 314   -0.938 0.000 0.721 0.279         0
## 315    0.000 0.000 1.000 0.000         0
## 316   -0.026 0.118 0.758 0.123         0
## 317    0.723 0.131 0.869 0.000         1
## 318   -0.599 0.000 0.741 0.259         0
## 319    0.016 0.109 0.785 0.106         0
## 320    0.702 0.086 0.914 0.000         0
## 321    0.340 0.286 0.714 0.000         0
## 322   -0.734 0.000 0.874 0.126         0
## 323    0.908 0.224 0.776 0.000         0
## 324    0.726 0.233 0.767 0.000         0
## 325    0.228 0.159 0.746 0.095         0
## 326   -0.382 0.000 0.809 0.191         0
## 327    0.735 0.162 0.838 0.000         0
## 328   -0.296 0.000 0.891 0.109         0
## 329   -0.572 0.000 0.852 0.148         1
## 330    0.000 0.000 1.000 0.000         0
## 331   -0.794 0.000 0.804 0.196         0
## 332   -0.586 0.000 0.678 0.322         0
## 333    0.250 0.222 0.778 0.000         0
## 334    0.000 0.000 1.000 0.000         0
## 335    0.382 0.110 0.890 0.000         1
## 336    0.000 0.000 1.000 0.000         0
## 337    0.000 0.000 1.000 0.000         0
## 338   -0.276 0.000 0.955 0.045         0
## 339    0.758 0.255 0.745 0.000         1
## 340    0.000 0.000 1.000 0.000         0
## 341   -0.660 0.000 0.645 0.355         0
## 342    0.168 0.077 0.866 0.058         0
## 343   -0.848 0.063 0.696 0.241         0
## 344   -0.929 0.000 0.753 0.247         0
## 345   -0.296 0.000 0.929 0.071         0
## 346    0.000 0.000 1.000 0.000         0
## 347    0.440 0.182 0.818 0.000         0
## 348    0.482 0.207 0.793 0.000         0
## 349    0.000 0.000 1.000 0.000         0
## 350    0.392 0.147 0.755 0.097         1
## 351    0.361 0.054 0.946 0.000         0
## 352   -0.612 0.073 0.691 0.236         0
## 353   -0.026 0.000 0.922 0.078         0
## 354   -0.340 0.170 0.536 0.295         0
## 355   -0.361 0.000 0.667 0.333         0
## 356    0.000 0.000 1.000 0.000         0
## 357   -0.559 0.094 0.751 0.155         1
## 358   -0.477 0.000 0.928 0.072         0
## 359    0.103 0.064 0.884 0.052         0
## 360   -0.077 0.144 0.703 0.153         0
## 361   -0.153 0.151 0.658 0.191         0
## 362    0.000 0.000 1.000 0.000         0
## 363    0.000 0.000 1.000 0.000         1
## 364    0.701 0.217 0.700 0.083         1
## 365   -0.511 0.000 0.708 0.292         0
## 366   -0.783 0.000 0.848 0.152         1
## 367    0.103 0.067 0.876 0.057         0
## 368   -0.527 0.136 0.643 0.221         0
## 369   -0.888 0.047 0.621 0.332         0
## 370   -0.341 0.000 0.806 0.194         0
## 371   -0.019 0.000 0.924 0.076         0
## 372    0.026 0.093 0.839 0.068         0
## 373    0.000 0.000 1.000 0.000         0
## 374    0.000 0.000 1.000 0.000         1
## 375    0.176 0.128 0.716 0.156         0
## 376    0.000 0.000 1.000 0.000         0
## 377    0.718 0.212 0.788 0.000         0
## 378    0.000 0.000 1.000 0.000         0
## 379    0.000 0.000 1.000 0.000         0
## 380    0.000 0.000 1.000 0.000         0
## 381    0.340 0.124 0.876 0.000         0
## 382    0.361 0.238 0.762 0.000         0
## 383   -0.494 0.000 0.814 0.186         0
## 384    0.900 0.261 0.739 0.000         0
## 385    0.273 0.139 0.861 0.000         0
## 386    0.000 0.000 1.000 0.000         0
## 387    0.000 0.000 1.000 0.000         0
## 388    0.000 0.000 1.000 0.000         0
## 389    0.318 0.204 0.796 0.000         0
## 390    0.000 0.000 1.000 0.000         0
## 391   -0.359 0.000 0.943 0.057         0
## 392    0.000 0.000 1.000 0.000         0
## 393    0.153 0.140 0.750 0.110         0
## 394    0.178 0.057 0.900 0.043         0
## 395   -0.226 0.185 0.578 0.237         0
## 396    0.000 0.000 1.000 0.000         0
## 397    0.000 0.000 1.000 0.000         0
## 398    0.000 0.000 1.000 0.000         0
## 399    0.271 0.054 0.946 0.000         0
## 400   -0.296 0.000 0.845 0.155         0
## 401   -0.202 0.069 0.838 0.093         0
## 402   -0.226 0.000 0.905 0.095         0
## 403    0.128 0.080 0.875 0.045         0
## 404   -0.477 0.000 0.838 0.162         0
## 405    0.000 0.000 1.000 0.000         0
## 406    0.077 0.029 0.971 0.000         0
## 407    0.000 0.000 1.000 0.000         0
## 408    0.000 0.000 1.000 0.000         0
## 409   -0.273 0.000 0.769 0.231         0
## 410    0.382 0.133 0.867 0.000         0
## 411    0.822 0.146 0.822 0.032         1
## 412    0.681 0.172 0.828 0.000         0
## 413   -0.340 0.129 0.702 0.169         0
## 414    0.000 0.000 1.000 0.000         0
## 415    0.660 0.122 0.878 0.000         0
## 416    0.000 0.000 1.000 0.000         0
## 417    0.620 0.123 0.877 0.000         1
## 418    0.026 0.180 0.820 0.000         0
## 419    0.000 0.000 1.000 0.000         0
## 420    0.000 0.115 0.769 0.115         0
## 421    0.739 0.221 0.779 0.000         0
## 422   -0.764 0.109 0.671 0.220         0
## 423    0.000 0.000 1.000 0.000         0
## 424   -0.340 0.000 0.789 0.211         0
## 425    0.000 0.000 1.000 0.000         0
## 426    0.000 0.000 1.000 0.000         0
## 427   -0.077 0.000 0.894 0.106         0
## 428   -0.283 0.000 0.867 0.133         1
## 429    0.000 0.000 1.000 0.000         0
## 430    0.623 0.165 0.784 0.051         0
## 431    0.519 0.295 0.705 0.000         0
## 432    0.273 0.075 0.925 0.000         0
## 433    0.273 0.259 0.741 0.000         0
## 434    0.000 0.000 1.000 0.000         0
## 435   -0.312 0.000 0.937 0.063         0
## 436    0.807 0.389 0.611 0.000         0
## 437   -0.382 0.041 0.885 0.074         0
## 438    0.000 0.000 1.000 0.000         0
## 439    0.572 0.402 0.598 0.000         0
## 440    0.611 0.114 0.886 0.000         1
## 441    0.421 0.067 0.933 0.000         0
## 442   -0.766 0.000 0.833 0.167         1
## 443    0.457 0.158 0.842 0.000         0
## 444    0.000 0.000 1.000 0.000         0
## 445    0.000 0.000 1.000 0.000         0
## 446   -0.790 0.097 0.693 0.210         0
## 447    0.000 0.000 1.000 0.000         0
## 448   -0.224 0.114 0.731 0.155         0
## 449   -0.581 0.105 0.669 0.225         0
## 450    0.412 0.129 0.820 0.050         1
## 451    0.593 0.069 0.931 0.000         2
## 452    0.359 0.079 0.921 0.000         0
## 453    0.000 0.000 1.000 0.000         0
## 454   -0.516 0.000 0.796 0.204         0
## 455   -0.458 0.213 0.542 0.245         0
## 456    0.000 0.000 1.000 0.000         0
## 457    0.000 0.000 1.000 0.000         0
## 458   -0.361 0.081 0.828 0.092         0
## 459   -0.511 0.000 0.645 0.355         0
## 460    0.000 0.000 1.000 0.000         0
## 461   -0.318 0.000 0.859 0.141         0
## 462    0.000 0.000 1.000 0.000         0
## 463    0.637 0.181 0.819 0.000         0
## 464    0.200 0.124 0.771 0.105         0
## 465   -0.694 0.021 0.848 0.131         0
## 466    0.000 0.000 1.000 0.000         0
## 467   -0.787 0.000 0.835 0.165         1
## 468    0.624 0.091 0.909 0.000         1
## 469   -0.494 0.000 0.802 0.198         0
## 470    0.408 0.138 0.862 0.000         0
## 471   -0.128 0.171 0.672 0.157         0
## 472    0.736 0.303 0.697 0.000         0
## 473   -0.477 0.000 0.876 0.124         0
## 474    0.000 0.000 1.000 0.000         0
## 475    0.236 0.087 0.855 0.058         0
## 476   -0.548 0.067 0.764 0.169         0
## 477    0.654 0.327 0.673 0.000         0
## 478   -0.437 0.000 0.922 0.078         0
## 479   -0.296 0.000 0.956 0.044         0
## 480    0.000 0.000 1.000 0.000         0
## 481   -0.223 0.000 0.788 0.212         0
## 482    0.000 0.000 1.000 0.000         0
## 483   -0.802 0.132 0.668 0.200         0
## 484    0.000 0.000 1.000 0.000         0
## 485    0.000 0.000 1.000 0.000         0
## 486    0.825 0.224 0.776 0.000         0
## 487   -0.402 0.000 0.899 0.101         0
## 488   -0.705 0.000 0.720 0.280         0
## 489    0.000 0.000 1.000 0.000         0
## 490    0.000 0.000 1.000 0.000         0
## 491    0.746 0.232 0.655 0.113         2
## 492    0.000 0.000 1.000 0.000         0
## 493    0.670 0.160 0.788 0.053         0
## 494   -0.743 0.063 0.789 0.148         0
## 495   -0.527 0.000 0.905 0.095         0
## 496    0.000 0.000 1.000 0.000         0
## 497    0.000 0.000 1.000 0.000         0
## 498   -0.787 0.167 0.507 0.326         0
## 499    0.000 0.000 1.000 0.000         0
## 500    0.713 0.108 0.892 0.000         1

Take a look at vader_summary data frame using the View() function in the console and sort by most positive and negative tweets.

Does it generally seem accurately identify positive and negative tweets? Could you find any that you think were mislabeled?

  • YOUR RESPONSE HERE

Hutto, C. & Gilbert, E. (2014) provide an excellent summary of the VADER package on their GitHub repository and I’ve copied and explanation of the scores below:

  • The compound score is computed by summing the valence scores of each word in the lexicon, adjusted according to the rules, and then normalized to be between -1 (most extreme negative) and +1 (most extreme positive). This is the most useful metric if you want a single unidimensional measure of sentiment for a given sentence. Calling it a ‘normalized, weighted composite score’ is accurate.

NOTE: The compound score is the one most commonly used for sentiment analysis by most researchers, including the authors.

Let’s take a look at the average compound score for our CCSS sample of tweets:

mean(vader_ccss$compound)
## [1] -0.01053

Overall, does your CCSS tweets sample lean slightly negative or positive? Is this what you expected?

What if we wanted to compare these results more easily to our other sentiment lexicons just to check if result are fairly consistent?

The author’s note that it is also useful for researchers who would like to set standardized thresholds for classifying sentences as either positive, neutral, or negative. Typical threshold values are:

  • positive sentimentcompound score >= 0.05

  • neutral sentiment: (compound score > -0.05) and (compound score < 0.05)

  • negative sentimentcompound score <= -0.05

Let’s give that a try and see how things shake out:

vader_ccss_summary <- vader_ccss %>% 
  mutate(sentiment = ifelse(compound >= 0.05, "positive",
                            ifelse(compound <= -0.05, "negative", "neutral"))) %>%
  count(sentiment, sort = TRUE) %>% 
  spread(sentiment, n) %>% 
  relocate(positive) %>%
  mutate(ratio = negative/positive)

vader_ccss_summary
##   positive negative neutral    ratio
## 1      159      176     165 1.106918

Not quite as bleak as we might have expected according to VADER! But then again, VADER brings an entirely different perspective coming from the dark side

In a separate R script file, try using VADER to perform a sentiment analysis of the NGSS tweets and see how they compare. Post your working code in the chunk below.

ngss_sample <- read_csv(here("unit-3", "data", "ngss-tweets.csv")) %>%
  sample_n(500)
## Warning: One or more parsing issues, see `problems()` for details
## Rows: 8125 Columns: 8
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr  (2): text, source
## dbl  (4): author_id, id, conversation_id, in_reply_to_user_id
## lgl  (1): possibly_sensitive
## dttm (1): created_at
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
vader_ngss <- vader_df(ngss_sample$text)

vader_ngss_summary <- vader_ngss %>% 
  mutate(sentiment = ifelse(compound >= 0.05, "positive",
                            ifelse(compound <= -0.05, 
                                   "negative", "neutral"))) %>%
  count(sentiment, sort = TRUE) %>% 
  spread(sentiment, n) %>% 
  relocate(positive) %>%
  mutate(ratio = negative/positive)

vader_ngss_summary
##   positive negative neutral     ratio
## 1      351       34     115 0.0968661

How do our results compare to the CSSS sample of tweets?

5. COMMUNICATE

In this case study, we focused on the literature guiding our analysis; wrangling our data into a one-token-per-row tidy text format; and using simple word counts and word clouds to compare common words used in tweets about the NGSS and CCSS curriculum standards. Below, add a few notes in response to the following prompts:

  1. One thing I took away from this learning lab:

  2. One thing I want to learn more about:

Congratulations - you’ve completed your first text mining case study! To complete your work, you can click the drop down arrow at the top of the file, then select “Knit top HTML.” This will create a report in your Files pane that serves as a record of your code and its output you can open or share.

If you wanted, you could save the processed data set to your data folder. The write_csv() function is useful for this. The following code is set to not run, as we wanted to ensure that everyone had the data set needed to begin the second learning lab, but if you’re confident in your prepared data, you can save it with the following:

write_csv()

Extra Credit (Optional)

Using your own text data or data that you you pulled from Twitter above, try tidying your data into a tidy text format, examining the top words in your dataset, and conducting sentiment analysis with VADER.

If you’d like to use the data we’ve been working with for extra credit, let’s take a quick look at text analysis using bigrams, or tokens consisting of two words.

Bigrams

So far in this lab, we specified tokens as individual words, but many interesting text analyses are based on the relationships between words, which words tend to follow others immediately, or words that tend to co-occur within the same documents.

We can also use the unnest_tokens() function to tokenize our tweets into consecutive sequences of words, called n-grams. By seeing how often word X is followed by word Y, we could then build a model of the relationships between them.

To specify our tokens as bigrams, We do add token = "ngrams" to the unnest_tokens() function and setting n to the number of words in each n-gram. Let’s set n to 2, so we can examine pairs of two consecutive words, often called “bigrams”:

ngss_bigrams <- ngss_tweets %>% 
  unnest_tokens(bigram, 
                text, 
                token = "ngrams", 
                n = 2)

Before we move any further let’s take a quick look at the most common bigrams in our NGSS tweets:

ngss_bigrams %>% 
  count(bigram, sort = TRUE)
## # A tibble: 111,411 × 2
##    bigram             n
##    <chr>          <int>
##  1 https t.co      6240
##  2 ngsschat https   721
##  3 of the           630
##  4 in the           531
##  5 ngss https       455
##  6 the ngss         403
##  7 to the           318
##  8 for the          295
##  9 to be            272
## 10 on the           239
## # … with 111,401 more rows

As we saw above, a lot of the most common bigrams are pairs of common (uninteresting) words as well. Dealing with these is a little less straightforward and we’ll need to use the separate() function from the tidyr package, which splits a column into multiple based on a delimiter. This lets us separate it into two columns, “word1” and “word2,” at which point we can remove cases where either is a stop-word.

library(tidyr)
bigrams_separated <- ngss_bigrams %>%
  separate(bigram, c("word1", "word2"), sep = " ")

bigrams_filtered <- bigrams_separated %>%
  filter(!word1 %in% stop_words$word) %>%
  filter(!word2 %in% stop_words$word)

tidy_bigrams <- bigrams_filtered %>%
  unite(bigram, word1, word2, sep = " ")

Let’s take a look at our bigram counts now:

tidy_bigrams %>% 
  count(bigram, sort = TRUE)
## # A tibble: 45,507 × 2
##    bigram                n
##    <chr>             <int>
##  1 https t.co         6240
##  2 ngsschat https      721
##  3 ngss https          455
##  4 ngss ngsschat       236
##  5 ngss aligned        192
##  6 ngss standards      168
##  7 ngss science        154
##  8 science education   148
##  9 science standards   112
## 10 teachers https      106
## # … with 45,497 more rows

Better, but there are still many tokens not especially useful for analysis.

Let’s make a custom custom stop word dictionary for bigrams just like we did for our unigrams. A list is started for you below, but you likely want to expand our list off stop words:

my_words <- c("https", "t.co")

Now let’s separate, filter, and unite again:

tidy_bigrams <- bigrams_separated %>%
  filter(!word1 %in% stop_words$word) %>%
  filter(!word2 %in% stop_words$word) %>%
  filter(!word1 %in% my_words) %>%
  filter(!word2 %in% my_words) %>%
  unite(bigram, word1, word2, sep = " ")

Note that since my_words is just a vector of words and not a data frame like stop_words, we do not need to select the word column using the $ operator.

Let’s take another quick count of our bigrams:

tidy_bigrams %>% 
  count(bigram, sort = TRUE)
## # A tibble: 37,539 × 2
##    bigram                          n
##    <chr>                       <int>
##  1 ngss ngsschat                 236
##  2 ngss aligned                  192
##  3 ngss standards                168
##  4 ngss science                  154
##  5 science education             148
##  6 science standards             112
##  7 ngss_tweeps ngsschat           96
##  8 science ngss                   94
##  9 bmsscienceteach ngss_tweeps    92
## 10 approved approach              89
## # … with 37,529 more rows

Your Turn ⤵

Use the code chunk below to tidy and count our bigrams for the CCSS tweets:

ccss_bigrams <- ccss_tweets %>% 
  unnest_tokens(bigram, 
                text, 
                token = "ngrams", 
                n = 2) %>%
  separate(bigram, c("word1", "word2"), sep = " ") %>%
  filter(!word1 %in% stop_words$word) %>%
  filter(!word2 %in% stop_words$word) %>%
  filter(!word1 %in% my_words) %>%
  filter(!word2 %in% my_words) %>%
  unite(bigram, word1, word2, sep = " ")

ccss_bigrams %>% 
  count(bigram, sort = TRUE)
## # A tibble: 85,101 × 2
##    bigram              n
##    <chr>           <int>
##  1 common core     26735
##  2 core math        8249
##  3 core standards    683
##  4 core education    420
##  5 core curriculum   372
##  6 gt gt             262
##  7 bill gates        252
##  8 grade common      252
##  9 public schools    246
## 10 grade level       233
## # … with 85,091 more rows

What additional insight, if any, did looking at bigrams bring to out analysis?

  • YOUR RESPONSE HERE

References

Note: Citations embedded in R Markdown will only show upon knitting.

Krumm, A., Means, B., & Bienkowski, M. (2018). Learning analytics goes to school. Routledge. https://doi.org/10.4324/9781315650722
Rosenberg, J. M., Borchers, C., Dyer, E. B., Anderson, D., & Fischer, C. (2021). Understanding Public Sentiment About Educational Reforms: The Next Generation Science Standards on Twitter. AERA Open, 7, 233285842110242. https://doi.org/10.1177/23328584211024261
Silge, J., & Robinson, D. (2017). Text mining with r: A tidy approach. " O’Reilly Media, Inc.". https://www.tidytextmining.com
Wang, Y., & Fikis, D. J. (2017). Common Core State Standards on Twitter: Public Sentiment and Opinion Leaders. Educational Policy, 33(4), 650–683. https://doi.org/10.1177/0895904817723739
LS0tCnRpdGxlOiAiVW5pdCAzIENhc2UgU3R1ZHk6IFB1YmxpYyBTZW50aW1lbnQgYW5kIHRoZSBTdGF0ZSBTdGFuZGFyZHMiCnN1YnRpdGxlOiAiRUNJIDU4NiBJbnRyb2R1Y3Rpb24gdG8gTGVhcm5pbmcgQW5hbHl0aWNzIgphdXRob3I6ICJEci4gU2hhdW4gS2VsbG9nZyIKZGF0ZTogImByIGZvcm1hdChTeXMuRGF0ZSgpLCclQiAlZSwgJVknKWAiCm91dHB1dDoKICBodG1sX2RvY3VtZW50OgogICAgdG9jOiB0cnVlCiAgICB0b2NfZGVwdGg6IDUKICAgIHRvY19mbG9hdDogeWVzCiAgICBjb2RlX2ZvbGRpbmc6IHNob3cKICAgIGNvZGVfZG93bmxvYWQ6IFRSVUUKYmlibGlvZ3JhcGh5OiBsaXQvcmVmZXJlbmNlcy5iaWIKY3NsOiBsaXQvYXBhLmNzbAotLS0KCmBgYHtyIHNldHVwLCBpbmNsdWRlPUZBTFNFfQprbml0cjo6b3B0c19jaHVuayRzZXQoZWNobyA9IFRSVUUpCmBgYAoKIyMgMS4gUFJFUEFSRQoKRGF0YSBzb3VyY2VzIHN1Y2ggYXMgZGlnaXRhbCBsZWFybmluZyBlbnZpcm9ubWVudHMgYW5kIGFkbWluaXN0cmF0aXZlIGRhdGEgc3lzdGVtcywgYXMgd2VsbCBhcyBkYXRhIHByb2R1Y2VkIGJ5IHNvY2lhbCBtZWRpYSB3ZWJzaXRlcyBhbmQgdGhlIG1hc3MgZGlnaXRpemF0aW9uIG9mIGFjYWRlbWljIGFuZCBwcmFjdGl0aW9uZXIgcHVibGljYXRpb25zLCBob2xkIGVub3Jtb3VzIHBvdGVudGlhbCB0byBhZGRyZXNzIGEgcmFuZ2Ugb2YgcHJlc3NpbmcgcHJvYmxlbXMgaW4gZWR1Y2F0aW9uLCBidXQgY29sbGVjdGluZyBhbmQgYW5hbHl6aW5nIHRleHQtYmFzZWQgZGF0YSBhbHNvIHByZXNlbnRzIHVuaXF1ZSBjaGFsbGVuZ2VzLiBUaGlzIHdlZWssIG91ciBjYXNlIHN0dWR5IGlzIGd1aWRlZCBieSBteSBjb2xsZWFndWUgSm9zaCBSb3NlbmJlcmcncyByZWNlbnQgYXJ0aWNsZSwgKipBZHZhbmNpbmcgbmV3IG1ldGhvZHMgZm9yIHVuZGVyc3RhbmRpbmcgcHVibGljIHNlbnRpbWVudCBhYm91dCBlZHVjYXRpb25hbCByZWZvcm1zOiBUaGUgY2FzZSBvZiBUd2l0dGVyIGFuZCB0aGUgTmV4dCBHZW5lcmF0aW9uIFNjaWVuY2UgU3RhbmRhcmRzLioqCgpXZSB3aWxsIGZvY3VzIG9uIGNvbmR1Y3RpbmcgYSB2ZXJ5IHNpbXBsaXN0aWMgInJlcGxpY2F0aW9uIHN0dWR5IiBieSBjb21wYXJpbmcgdGhlIHNlbnRpbWVudCBvZiB0d2VldHMgYWJvdXQgdGhlIFtOZXh0IEdlbmVyYXRpb24gU2NpZW5jZSBTdGFuZGFyZHNdKGh0dHBzOi8vd3d3Lm5leHRnZW5zY2llbmNlLm9yZykgKE5HU1MpIGFuZCBbQ29tbW9uIENvcmUgU3RhdGUgU3RhbmRhcmRzXShodHRwOi8vd3d3LmNvcmVzdGFuZGFyZHMub3JnKSAoQ0NTUykgaW4gb3JkZXIgdG8gYmV0dGVyIHVuZGVyc3RhbmQgcHVibGljIHJlYWN0aW9uIHRvIHRoZXNlIHR3byBjdXJyaWN1bHVtIHJlZm9ybSBlZmZvcnRzLiBTcGVjaWZpY2FsbHksIG91ciBVbml0IDMgY2FzZSBzdHVkeSB3aWxsIGNvdmVyIHRoZSBmb2xsb3dpbmcgdG9waWNzOgoKMS4gICoqUHJlcGFyZSoqOiBXZSdsbCB0YWtlIGEgcXVpY2sgbG9vayBhdCBEci4gUm9zZW5iZXJnJ3Mgc3R1ZHksIGxvYWQgcGFja2FnZXMgd2UnbGwgbmVlZCBmb3IgYW5hbHlzaXMsIGFuZCBsZWFybiBob3cgdG8gdXNlIFR3aXR0ZXIncyBBUEkgdG8gcmV0cmlldmUgZGF0YSBmb3IgdGhvc2UgdGhhdCBjcmVhdGVkIGEgVHdpdHRlciBEZXZlbG9wZXIgYWNjb3VudC4KMi4gICoqV3JhbmdsZSoqOiBXZSBmb2N1cyBvbiBiYXNpYyB0ZXh0IG1pbmluZyBwcm9jZXNzZXMgc3VjaCBhcyB0ZXh0IHRva2VuaXphdGlvbiBhbmQgc3RvcCB3b3JkIHJlbW92YWwuIFNwZWNpZmljYWxseSwgd2Ugd2lsbCBsZWFybiBob3cgdG8gInRpZHkgdGV4dCIgc28gd2UgY2FuIHBlcmZvcm0gc29tZSBiYXNpYyBhbmFseXNlcyBzdWNoIGFzIHJldHJpZXZpbmcgd29yZCBjb3VudHMgYW5kIHRlcm0gZnJlcXVlbmNpZXMuCjMuICAqKkV4cGxvcmUqKjogSW4gb3JkZXIgdG8gc2VlIHdoYXQgaW5zaWdodCBvdXIgZGF0YSBwcm92aWRlcyBpbnRvIGFuc3dlcmluZyBvdXIgcmVzZWFyY2ggcXVlc3Rpb25zLCB3ZSB3aWxsIGNhbGN1bGF0ZSBzb21lIGJhc2ljIHNpbXBsZSBzdW1tYXJ5IHN0YXRpc3RpY3MgZnJvbSBvdXIgdGlkaWVkIHRleHQgYW5kIHVzZSBkYXRhIHZpc3VhbGl6YXRpb24gdG8gaGlnaGxpZ2h0IHNvbWUgb2YgdGhlc2UgaW5zaWdodHMuCjQuICAqKk1vZGVsOioqIFdlIGxlYXJuIGFib3V0IHNlbnRpbWVudCBsZXhpY29ucyBpbiBvdXIgdGhpcmQgbGFiIGFuZCBpbnRyb2R1Y2UgdGhlIHt2YWRlcn0gcGFja2FnZSB0byBtb2RlbCB0aGUgc2VudGltZW50IG9mIHR3ZWV0cyBhYm91dCB0aGUgTkdTUyBhbmQgQ0NTUyBzdGF0ZSBzdGFuZGFyZHMgaW4gb3JkZXIgdG8gYmV0dGVyIHVuZGVyc3RhbmQgcHVibGljIHJlYWN0aW9uIHRvIHRoZXNlIHR3byBjdXJyaWN1bHVtIHJlZm9ybSBlZmZvcnRzLlwKICAgICoqQ29tbXVuaWNhdGU6KioKCiMjIyAxYS4gUmV2aWV3IHRoZSBMaXRlcmF0dXJlCgpUaGUgKipVbml0IDMgQ2FzZSBTdHVkeTogUHVibGljIFNlbnRpbWVudCBhbmQgdGhlIFN0YXRlIFN0YW5kYXJkcyoqIGlzIGd1aWRlZCBieSBhIHJlY2VudCBwdWJsaWNhdGlvbiBieSBbQHJvc2VuYmVyZzIwMjFdICpVbmRlcnN0YW5kaW5nIFB1YmxpYyBTZW50aW1lbnQgQWJvdXQgRWR1Y2F0aW9uYWwgUmVmb3JtczogVGhlIE5leHQgR2VuZXJhdGlvbiBTY2llbmNlIFN0YW5kYXJkcyBvbiBUd2l0dGVyKi4gVGhpcyBzdHVkeSBpbiB0dXJuIGJ1aWxkcyBvbiB1cG9uIHByZXZpb3VzIHdvcmsgYnkgQHdhbmcyMDE3IGV4YW1pbmluZyBwdWJsaWMgb3BpbmlvbiBvbiB0aGUgQ29tbW9uIENvcmUgU3RhdGUgU3RhbmRhcmRzIChDQ1NTKSBvbiBUd2l0dGVyLiBGb3IgTW9kdWxlIDEsIHdlIHdpbGwgZm9jdXMgb24gYW5hbHl6aW5nIHR3ZWV0cyBhYm91dCB0aGUgW05leHQgR2VuZXJhdGlvbiBTY2llbmNlIFN0YW5kYXJkc10oaHR0cHM6Ly93d3cubmV4dGdlbnNjaWVuY2Uub3JnKSAoTkdTUykgYW5kIFtDb21tb24gQ29yZSBTdGF0ZSBTdGFuZGFyZHNdKGh0dHA6Ly93d3cuY29yZXN0YW5kYXJkcy5vcmcpIChDQ1NTKSBpbiBvcmRlciB0byBiZXR0ZXIgdW5kZXJzdGFuZCBrZXkgd29yZHMgYW5kIHBocmFzZXMgdGhhdCBlbWVyZ2UsIGFzIHdlbGwgYXMgcHVibGljIHNlbnRpbWVudCB0b3dhcmRzIHRoZXNlIHR3byBjdXJyaWN1bHVtIHJlZm9ybSBlZmZvcnRzLgoKWyFbXShpbWcvcm9zZW5iZXJnLmpwZyl7d2lkdGg9IjUwJSJ9XShodHRwczovL2RvaS5vcmcvMTAuMTE3Ny8yMzMyODU4NDIxMTAyNDI2MSkKCltGdWxsIFBhcGVyIChBRVJBIE9wZW4pXShodHRwczovL2pvdXJuYWxzLnNhZ2VwdWIuY29tL2RvaS9mdWxsLzEwLjExNzcvMjMzMjg1ODQyMTEwMjQyNjEpCgojIyMjIEFic3RyYWN0CgpTeXN0ZW0td2lkZSBlZHVjYXRpb25hbCByZWZvcm1zIGFyZSBkaWZmaWN1bHQgdG8gaW1wbGVtZW50IGluIHRoZSBVbml0ZWQgU3RhdGVzLCBidXQgZGVzcGl0ZSB0aGUgZGlmZmljdWx0aWVzLCByZWZvcm1zIGNhbiBiZSBzdWNjZXNzZnVsLCBwYXJ0aWN1bGFybHkgd2hlbiB0aGV5IGFyZSBhc3NvY2lhdGVkIHdpdGggYnJvYWQgcHVibGljIHN1cHBvcnQuIFRoaXMgc3R1ZHkgcmVwb3J0cyBvbiB0aGUgbmF0dXJlIG9mIHRoZSBwdWJsaWMgc2VudGltZW50IGV4cHJlc3NlZCBhYm91dCBhIG5hdGlvbndpZGUgc2NpZW5jZSBlZHVjYXRpb24gcmVmb3JtIGVmZm9ydCwgdGhlIE5leHQgR2VuZXJhdGlvbiBTY2llbmNlIFN0YW5kYXJkcyAoTkdTUykuIFRocm91Z2ggdGhlIHVzZSBvZiBkYXRhIHNjaWVuY2UgdGVjaG5pcXVlcyB0byBtZWFzdXJlIHRoZSBzZW50aW1lbnQgb2YgcG9zdHMgb24gVHdpdHRlciBhYm91dCB0aGUgTkdTUyAoKk4qID0gNTY1LDI4MyksIHdlIGZvdW5kIHRoYXQgcHVibGljIHNlbnRpbWVudCBhYm91dCB0aGUgTkdTUyBpcyBwb3NpdGl2ZSwgd2l0aCBvbmx5IDExIG5lZ2F0aXZlIHBvc3RzIGZvciBldmVyeSAxMDAgcG9zaXRpdmUgcG9zdHMuIEluIGNvbnRyYXN0IHRvIGZpbmRpbmdzIGZyb20gcGFzdCByZXNlYXJjaCBhbmQgcHVibGljIG9waW5pb24gcG9sbGluZyBvbiB0aGUgQ29tbW9uIENvcmUgU3RhdGUgU3RhbmRhcmRzLCBzZW50aW1lbnQgYWJvdXQgdGhlIE5HU1MgaGFzIGJlY29tZSBtb3JlIHBvc2l0aXZlIG92ZXIgdGltZS0tLWFuZCB3YXMgZXNwZWNpYWxseSBwb3NpdGl2ZSBmb3IgdGVhY2hlcnMuIFdlIGRpc2N1c3Mgd2hhdCB0aGlzIHBvc2l0aXZlIHNlbnRpbWVudCBtYXkgaW5kaWNhdGUgYWJvdXQgdGhlIHN1Y2Nlc3Mgb2YgdGhlIE5HU1MgaW4gbGlnaHQgb2Ygb3Bwb3NpdGlvbiB0byB0aGUgQ29tbW9uIENvcmUgU3RhdGUgU3RhbmRhcmRzLgoKIyMjIyBEYXRhIFNvdXJjZXMKClNpbWlsYXIgdG8gZGF0YSB3ZSdsbCBiZSB1c2luZyBmb3IgdGhpcyBjYXNlIHN0dWR5LCBSb3NlbmJlcmcgZXQgYWwuIHVzZWQgcHVibGljbHkgYWNjZXNzaWJsZSBkYXRhIGZyb20gVHdpdHRlciBjb2xsZWN0ZWQgdXNpbmcgdGhlIEZ1bGwtQXJjaGl2ZSBUd2l0dGVyIEFQSSBhbmQgdGhlIHtydHdlZXR9IHBhY2thZ2UgaW4gUi4gU3BlY2lmaWNhbGx5LCB0aGUgYXV0aG9ycyBhY2Nlc3NlZCB0d2VldHMgYW5kIHVzZXIgaW5mb3JtYXRpb24gZnJvbSB0aGUgaGFzaHRhZy1iYXNlZCBcI05HU1NjaGF0IG9ubGluZSBjb21tdW5pdHksIGFsbCB0d2VldHMgdGhhdCBpbmNsdWRlZCBhbnkgb2YgdGhlIGZvbGxvd2luZyBwaHJhc2VzLCB3aXRoICIvIiBpbmRpY2F0aW5nIGFuIGFkZGl0aW9uYWwgcGhyYXNlIGZlYXR1cmluZyB0aGUgcmVzcGVjdGl2ZSBwbHVyYWwgZm9ybTogIm5nc3MiLCAibmV4dCBnZW5lcmF0aW9uIHNjaWVuY2Ugc3RhbmRhcmQvcyIsICJuZXh0IGdlbiBzY2llbmNlIHN0YW5kYXJkL3MiLgoKRGF0YSB1c2VkIGluIHRoaXMgY2FzZSB3YXMgcHVsbGVkIHVzaW5nIGFuIFtBY2FkZW1pYyBSZXNlYXJjaCBkZXZlbG9wZXIgYWNjb3VudF0oaHR0cHM6Ly9kZXZlbG9wZXIudHdpdHRlci5jb20vZW4vcHJvZHVjdHMvdHdpdHRlci1hcGkvYWNhZGVtaWMtcmVzZWFyY2gpIGFuZCB0aGUge2FjYWRlbWljdHdpdHRlcn0gcGFja2FnZSwgd2hpY2ggdXNlcyB0aGUgVHdpdHRlciBBUEkgdjIgZW5kcG9pbnRzIGFuZCBhbGxvd3MgcmVzZWFyY2hlcnMgdG8gYWNjZXNzIHRoZSBmdWxsIHR3aXR0ZXIgYXJjaGl2ZSwgdW5saWtlIHRoZSBzdGFuZGFyZCBkZXZlbG9wZXIgYWNjb3VudC4gRGF0YSBpbmNsdWRlcyBhbGwgdHdlZXRzIGZyb20gSmFudWFyeSB0aHJvdWdoIE1heSBvZiAyMDIwIGFuZCBpbmNsdWRlZCB0aGUgZm9sbG93aW5nIHRlcm1zOiBgI2Njc3NgLCBgY29tbW9uIGNvcmVgLCBgI25nc3NjaGF0YCwgYG5nc3NgLiBCZWxvdyBpcyBhbiBleGFtcGxlIG9mIHRoZSBjb2RlIHVzZWQgdG8gcmV0cmlldmUgZGF0YSBmb3IgdGhpcyBsYWIuICoqVGhpcyBjb2RlIGlzIHNldCBub3QgdG8gZXhlY3V0ZSBhbmQgd2lsbCBub3QgcnVuKiosIGJ1dCBpdCBkb2VzIGlsbHVzdHJhdGUgdGhlIHNlYXJjaCBxdWVyeSB1c2VkLCB2YXJpYWJsZXMgc2VsZWN0ZWQsIGFuZCB0aW1lIGZyYW1lLiBGb3IgdGhvc2UgdGhhdCBjcmVhdGVkIGEgc3RhbmRhcmQgZGV2ZWxvcGVyIGFjY291bnQsIHdlIHdpbGwgbGVhcm4gaG93IHRvIHVzZSB5b3VyIGRldmVsb3BlciBhY2NvdW50IGxhdGVyIGluIHRoaXMgc2VjdGlvbiB0byByZXRyaWV2ZSBkYXRhIGZyb20gVHdpdHRlci4KCmBgYHtyLCBldmFsPUZBTFNFfQpsaWJyYXJ5KGFjYWRlbWljdHdpdHRlUikKbGlicmFyeSh0aWR5dmVyc2UpCgpjY3NzX3R3ZWV0c18yMDIxIDwtCiAgZ2V0X2FsbF90d2VldHMoJygjY29tbW9uY29yZSBPUiAiY29tbW9uIGNvcmUiKSAtaXM6cmV0d2VldCBsYW5nOmVuJywKICAgICAgICAgICAgICAgICAiMjAyMS0wMS0wMVQwMDowMDowMFoiLAogICAgICAgICAgICAgICAgICIyMDIxLTA1LTMxVDAwOjAwOjAwWiIsCiAgICAgICAgICAgICAgICAgYmVhcmVyX3Rva2VuLAogICAgICAgICAgICAgICAgIGRhdGFfcGF0aCA9ICJjY3NzLWRhdGEvIiwKICAgICAgICAgICAgICAgICBiaW5kX3R3ZWV0cyA9IEZBTFNFKQoKY2Nzc190d2VldHMgPC0gYmluZF90d2VldF9qc29ucyhkYXRhX3BhdGggPSAiY2Nzcy1kYXRhLyIpICU+JQogIHNlbGVjdCh0ZXh0LAogICAgICAgICBjcmVhdGVkX2F0LAogICAgICAgICBhdXRob3JfaWQsCiAgICAgICAgIGlkLAogICAgICAgICBjb252ZXJzYXRpb25faWQsCiAgICAgICAgIHNvdXJjZSwKICAgICAgICAgcG9zc2libHlfc2Vuc2l0aXZlLAogICAgICAgICBpbl9yZXBseV90b191c2VyX2lkKQoKCndyaXRlX2NzdihjY3NzX3R3ZWV0cywgaGVyZSgiZGF0YSIsICJjY3NzLXR3ZWV0cy5jc3YiKSkKYGBgCgojIyMjIEFuYWx5c2lzCgpUaGUgYXV0aG9ycyBkZXRlcm1pbmVkIFR3ZWV0IHNlbnRpbWVudCB1c2luZyB0aGUgSmF2YSB2ZXJzaW9uIG9mIFNlbnRpU3RyZW5ndGggdG8gYXNzaWduIHR3ZWV0cyB0byB0d28gNS1wb2ludCBzY2FsZXMgb2Ygc2VudGltZW50LCBvbmUgZm9yIHBvc2l0aXZpdHkgYW5kIG9uZSBmb3IgbmVnYXRpdml0eSwgYmVjYXVzZSBTZW50aVN0cmVuZ3RoIGlzIGEgdmFsaWRhdGVkIG1lYXN1cmUgZm9yIHNlbnRpbWVudCBpbiBzaG9ydCBpbmZvcm1hbCB0ZXh0cyAoVGhlbHdhbGwgZXQgYWwuLCAyMDExKS4gSW4gYWRkaXRpb24sIHRoZXkgdXNlZCB0aGlzIHRvb2wgYmVjYXVzZSBXYW5nIGFuZCBGaWtpcyAoMjAxOSkgdXNlZCBpdCB0byBleHBsb3JlIHRoZSBzZW50aW1lbnQgb2YgQ0NTUy1yZWxhdGVkIHBvc3RzLiBXZSdsbCBiZSB1c2luZyB0aGUgQUZJTk4gc2VudGltZW50IGxleGljb24gd2hpY2ggYWxzbyBhc3NpZ25zIHdvcmRzIGluIGEgdHdlZXQgdG8gdHdvIDUtcG9pbnQgc2NhbGVzLCBpbiBhZGRpdGlvbiB0byBleHBsb3Jpbmcgc29tZSBvdGhlciBzZW50aW1lbnQgbGV4aWNvbnMgdG8gc2VlIGlmIHRoZXkgcHJvZHVjZSBzaW1pbGFyIHJlc3VsdHMuIFdlIHdpbGwgdXNlIGEgc2ltaWxhciBhcHByb2FjaCB0byBsYWJlbCB0d2VldHMgYXMgcG9zaXRpdmUsIG5lZ2F0aXZlLCBvciBuZXV0cmFsIHVzaW5nIHRoZSB7VmFkZXJ9IHBhY2thZ2Ugd2hpY2ggZ3JlYXRseSBzaW1wbGlmaWVzIHRoaXMgcHJvY2Vzcy4KClRoZSBhdXRob3JzIGFsc28gdXNlZCB0aGUgYGxtZTRgIHBhY2thZ2UgaW4gUiB0byBydW4gYSBtaXhlZCBlZmZlY3RzIG1vZGVsIHRvIGRldGVybWluZSBpZiBzZW50aW1lbnQgY2hhbmdlcyBvdmVyIHRpbWUgYW5kIGRpZmZlcnMgYmV0d2VlbiB0ZWFjaGVycyBhbmQgbm9uLXRlYWNoZXJzLiBXZSB3b24ndCB0cnkgdG8gcmVwbGljYXRlIGluIHRoaXMgc3R1ZHksIGJ1dCB3ZSB3aWxsIHRha2UgYSBsb29rIGF0IHNvbWUgb2YgdGhlaXIgZmluZGluZ3MgZnJvbSB0aGlzIG1vZGVsIGluIGJlbG93LgoKIyMjIyAqKlN1bW1hcnkgb2YgS2V5IEZpbmRpbmdzKioKCjEuICBDb250cmFzdGluZyB3aXRoIHNlbnRpbWVudCBhYm91dCBDU1NTLCBzZW50aW1lbnQgYWJvdXQgdGhlIE5HU1Mgc2NpZW5jZSBlZHVjYXRpb24gcmVmb3JtIGVmZm9ydCBpcyBvdmVyd2hlbG1pbmdseSBwb3NpdGl2ZSwgd2l0aCBhcHByb3hpbWF0ZWx5IDkgcG9zaXRpdmUgdHdlZXRzIGZvciBldmVyeSBuZWdhdGl2ZSB0d2VldC4KMi4gIFRlYWNoZXJzIHdlcmUgbW9yZSBwb3NpdGl2ZSB0aGFuIG5vbi10ZWFjaGVycywgYW5kIHNlbnRpbWVudCBiZWNhbWUgc3Vic3RhbnRpYWxseSBtb3JlIHBvc2l0aXZlIG92ZXIgdGhlIHRlbiB5ZWFycyBvZiBOR1NTLXJlbGF0ZWQgcG9zdHMuCjMuICBEaWZmZXJlbmNlcyBiZXR3ZWVuIHRoZSBjb250ZXh0IG9mIHRoZSB0d2VldHMgd2VyZSBzbWFsbCwgYnV0IHRob3NlIHRoYXQgZGlkIG5vdCBpbmNsdWRlIHRoZSBcI05HU1NjaGF0IGhhc2h0YWcgYmVjYW1lIG1vcmUgcG9zaXRpdmUgb3ZlciB0aW1lIHRoYW4gdGhvc2UgcG9zdHMgdGhhdCBkaWQgbm90IGluY2x1ZGUgdGhlIGhhc2h0YWcuCjQuICBJbmRpdmlkdWFscyBwb3N0ZWQgbW9yZSB0d2VldHMgZHVyaW5nIFwjTkdTU2NoYXQgY2hhdHMsIHRoZSBzZW50aW1lbnQgb2YgdGhlaXIgcG9zdHMgd2FzIG1vcmUgcG9zaXRpdmUsIHN1Z2dlc3RpbmcgdGhhdCB3aGlsZSB0aGUgY29udGV4dCBvZiBpbmRpdmlkdWFsIHR3ZWV0cyBoYXMgYSBzbWFsbCBlZmZlY3QgKHdpdGggcG9zdHMgbm90IGluY2x1ZGluZyB0aGUgaGFzaHRhZyBiZWNvbWluZyBtb3JlIHBvc2l0aXZlIG92ZXIgdGltZSksIHRoZSBlZmZlY3QgdXBvbiBpbmRpdmlkdWFscyBvZiBiZWluZyBpbnZvbHZlZCBpbiB0aGUgXCNOR1NTY2hhdCB3YXMgcG9zaXRpdmUuCgpGaW5hbGx5LCB5b3UgY2FuIHdhdGNoIERyLiBSb3NlbmJlcmcgcHJvdmlkZSBhIHF1aWNrIDMtbWludXRlIG92ZXJ2aWV3IG9mIHRoaXMgd29yayBhdCBbXDxodHRwczovL3N0YW5mb3JkLmFwcC5ib3guY29tL3MvaTVpeGtqMmI4ZHl5OHE1ajlvNXd3NG5hZnpuYjQ5N3hcPl0oaHR0cHM6Ly9zdGFuZm9yZC5hcHAuYm94LmNvbS9zL2k1aXhrajJiOGR5eThxNWo5bzV3dzRuYWZ6bmI0OTd4KXsudXJpfQoKIyMjIDFiLiBEZWZpbmUgUXVlc3Rpb25zCgpPbmUgb3ZlcmFyY2hpbmcgcXVlc3Rpb24gdGhhdCBTaWxnZSBhbmQgUm9iaW5zb24gKDIwMTgpIGlkZW50aWZ5IGFzIGEgY2VudHJhbCBxdWVzdGlvbiB0byB0ZXh0IG1pbmluZyBhbmQgbmF0dXJhbCBsYW5ndWFnZSBwcm9jZXNzaW5nLCBhbmQgdGhhdCB3ZSdsbCBleHBsb3JlIGxhdGVyIGluIHRoaXMgY2FzZSBzdHVkeSwgaXMgdGhlIHF1ZXN0aW9uOgoKPiBIb3cgZG8gd2UgdG8gKipxdWFudGlmeSoqIHdoYXQgYSBkb2N1bWVudCBvciBjb2xsZWN0aW9uIG9mIGRvY3VtZW50cyBpcyBhYm91dD8KClRoZSBxdWVzdGlvbnMgZ3VpZGluZyB0aGUgUm9zZW5iZXJnIGV0IGFsLiBzdHVkeSBhdHRlbXB0IHRvIHF1YW50aWZ5IHB1YmxpYyBzZW50aW1lbnQgYXJvdW5kIHRoZSBOR1NTIGFuZCBob3cgdGhhdCBzZW50aW1lbnQgY2hhbmdlcyBvdmVyIHRpbWUuIFNwZWNpZmljYWxseSwgdGhleSBhc2tlZDoKCjEuICBXaGF0IGlzIHRoZSBwdWJsaWMgc2VudGltZW50IGV4cHJlc3NlZCB0b3dhcmQgdGhlIE5HU1M/CjIuICBIb3cgZG9lcyBzZW50aW1lbnQgZm9yIHRlYWNoZXJzIGRpZmZlciBmcm9tIG5vbi10ZWFjaGVycz8KMy4gIEhvdyBkbyB0d2VldHMgcG9zdGVkIHRvIFwjTkdTU2NoYXQgZGlmZmVyIGZyb20gdGhvc2Ugd2l0aG91dCB0aGUgaGFzaHRhZz8KNC4gIEhvdyBkb2VzIHBhcnRpY2lwYXRpb24gaW4gXCNOR1NTY2hhdCByZWxhdGUgdG8gdGhlIHB1YmxpYyBzZW50aW1lbnQgaW5kaXZpZHVhbHMgZXhwcmVzcz8KNS4gIEhvdyBkb2VzIHB1YmxpYyBzZW50aW1lbnQgdmFyeSBvdmVyIHRpbWU/CgpGb3Igb3VyIHRleHQgbWluaW5nIGNhc2Ugc3R1ZHksIHdlJ2xsIHVzZSBhcHByb2FjaGVzIHNpbWlsYXIgdG8gdGhvc2UgdXNlZCBieSB0aGUgYXV0aG9ycyBjaXRlZCBhYm92ZSB0byBiZXR0ZXIgdW5kZXJzdGFuZCBwdWJsaWMgZGlzY291cnNlIHN1cnJvdW5kaW5nIHRoZXNlIHN0YW5kYXJkcywgcGFydGljdWxhcmx5IGFzIHRoZXkgcmVsYXRlIHRvIFNURU0gZWR1Y2F0aW9uLiBXZSB3aWxsIGFsc28gdHJ5IHRvIGd1YWdlIHB1YmxpYyBzZW50aW1lbnQgYXJvdW5kIHRoZSBOR1NTLCBieSBjb21wYXJpbmcgaG93IG11Y2ggbW9yZSBwb3NpdGl2ZSBvciBuZWdhdGl2ZSBOR1NTIHR3ZWV0cyBhcmUgcmVsYXRpdmUgdG8gQ1NTUyB0d2VldHMuIFNwZWNpZmljYWxseSwgaW4gdGhpcyBjYXNlIHN0dWR5IHdlJ2xsIGF0dGVtcHQgdG8gYW5zd2VyIHRoZSBmb2xsb3dpbmcgcXVlc3Rpb25zOgoKMS4gIFdoYXQgYXJlIHRoZSBtb3N0IGZyZXF1ZW50IHdvcmRzIG9yIHBocmFzZXMgdXNlZCBpbiByZWZlcmVuY2UgdG8gdHdlZXRzIGFib3V0IHRoZSBDQ1NTIGFuZCBOR1NTPwoyLiAgSG93IGRvZXMgc2VudGltZW50IGZvciBOR1NTIGNvbXBhcmUgdG8gc2VudGltZW50IGZvciBDQ1NTPwoKIyMjIDFjLiBMb2FkIExpYnJhcmllcwoKIyMjIyB0aWR5dGV4dCDwn5OmCgohW10oaW1hZ2VzL3RpZHl0ZXh0LnBuZyl7d2lkdGg9IjIwJSJ9CgpBcyB3ZSdsbCBsZWFybiBmaXJzdCBoYW5kIGluIHRoaXMgbW9kdWxlLCB1c2luZyB0aWR5IGRhdGEgcHJpbmNpcGxlcyBjYW4gYWxzbyBtYWtlIG1hbnkgdGV4dCBtaW5pbmcgdGFza3MgZWFzaWVyLCBtb3JlIGVmZmVjdGl2ZSwgYW5kIGNvbnNpc3RlbnQgd2l0aCB0b29scyBhbHJlYWR5IGluIHdpZGUgdXNlLiBUaGUge3RpZHl0ZXh0fSBwYWNrYWdlIGhlbHBzIHRvIGNvbnZlcnQgdGV4dCBpbnRvIGRhdGEgZnJhbWVzIG9mIGluZGl2aWR1YWwgd29yZHMsIG1ha2luZyBpdCBlYXN5IHRvIHRvIG1hbmlwdWxhdGUsIHN1bW1hcml6ZSwgYW5kIHZpc3VhbGl6ZSB0ZXh0IHVzaW5nIHVzaW5nIGZhbWlsaWFyIGZ1bmN0aW9ucyBmb3JtIHRoZSB7dGlkeXZlcnNlfSBjb2xsZWN0aW9uIG9mIHBhY2thZ2VzLgoKTGV0J3MgZ28gYWhlYWQgYW5kIGxvYWQgdGhlIHt0aWR5dGV4dH0gcGFja2FnZToKCmBgYHtyfQpsaWJyYXJ5KHRpZHl0ZXh0KQpgYGAKCkZvciBhIG1vcmUgY29tcHJlaGVuc2l2ZSBpbnRyb2R1Y3Rpb24gdG8gdGhlIGB0aWR5dGV4dGAgcGFja2FnZSwgSSBjYW5ub3QgcmVjb21tZW5kIGVub3VnaCB0aGUgZnJlZSBhbmQgZXhjZWxsZW50IG9ubGluZSBib29rLCAqVGV4dCBNaW5pbmcgd2l0aCBSOiBBIFRpZHkgQXBwcm9hY2gqIFtAc2lsZ2UyMDE3dGV4dF0uIElmIHlvdSdyZSBpbnRlcmVzdGVkIGluIHB1cnN1aW5nIHRleHQgYW5hbHlzaXMgdXNpbmcgUiBwb3N0IFN1bW1lciBXb3Jrc2hvcCwgdGhpcyB3aWxsIGJlIGEgZ28gdG8gcmVmZXJlbmNlLgoKIyMjIyBUaGUgdmFkZXIgUGFja2FnZSDwn5OmCgohW10oaW1nL3ZhZGVyLmpwZWcpe3dpZHRoPSIyMCUifVwKClRoZSB7dmFkZXJ9IHBhY2thZ2UgaXMgZm9yIHRoZSBWYWxlbmNlIEF3YXJlIERpY3Rpb25hcnkgZm9yIHNFbnRpbWVudCBSZWFzb25pbmcgKFZBREVSKSwgYSBydWxlLWJhc2VkIG1vZGVsIGZvciBnZW5lcmFsIHNlbnRpbWVudCBhbmFseXNpcyBvZiBzb2NpYWwgbWVkaWEgdGV4dCBhbmQgc3BlY2lmaWNhbGx5IGF0dHVuZWQgdG8gbWVhc3VyaW5nIHNlbnRpbWVudCBpbiBtaWNyb2Jsb2ctbGlrZSBjb250ZXh0cy4KClRvIGxlYXJuIG1vcmUgYWJvdXQgdGhlIHt2YWRlcn0gcGFja2FnZSBhbmQgaXRzIGRldmVsb3BtZW50LCB0YWtlIGEgbG9vayBhdCB0aGUgYXJ0aWNsZSBieSBIdXR0byBhbmQgR2lsYmVydCAoMjAxNCksIFtWQURFUjogQSBQYXJzaW1vbmlvdXMgUnVsZS1iYXNlZCBNb2RlbCBmb3JTZW50aW1lbnQgQW5hbHlzaXMgb2YgU29jaWFsIE1lZGlhIFRleHRdKGh0dHA6Ly9jb21wLnNvY2lhbC5nYXRlY2guZWR1L3BhcGVycy9pY3dzbTE0LnZhZGVyLmh1dHRvLnBkZikuCgpMZXQncyBnbyBhaGVhZCBhbmQgbG9hZCB0aGUgVkFERVIgbGlicmFyeToKCmBgYHtyfQpsaWJyYXJ5KHZhZGVyKQpgYGAKCioqTm90ZToqKiBUaGUge3ZhZGVyfSBwYWNrYWdlIGNhbiB0YWtlIHF1aXRlIHNvbWUgdGltZSB0byBydW4gb24gYSBsYXJnZSBkYXRhc2V0cyBsaWtlIHRoZSBvbmUgd2UnbGwgYmUgd29ya2luZyB3aXRoLCBzbyBpbiBvdXIgTW9kZWwgc2VjdGlvbiB3ZSB3aWxsIGV4YW1pbmUganVzdCBhIHNtYWxsKGlzaCkgc3Vic2V0IG9mIHR3ZWV0cy4KCiMjIyMgKipydHdlZXQg8J+TpiAoT3B0aW9uYWwpKioKCiFbXShpbWcvcnR3ZWV0LmpwZWcpe3dpZHRoPSIyMCUifQoKVGhlIHtydHdlZXR9IHBhY2thZ2UgcHJvdmlkZXMgdXNlcnMgYSByYW5nZSBvZiBmdW5jdGlvbnMgZGVzaWduZWQgdG8gZXh0cmFjdCBkYXRhIGZyb20gVHdpdHRlcidzIFJFU1QgYW5kIHN0cmVhbWluZyBBUElzIGFuZCBoYXMgdGhyZWUgbWFpbiBnb2FsczoKCjEuICBGb3JtdWxhdGUgYW5kIHNlbmQgcmVxdWVzdHMgdG8gVHdpdHRlcidzIFJFU1QgYW5kIHN0cmVhbSBBUElzLgoKMi4gIFJldHJpZXZlIGFuZCBpdGVyYXRlIG92ZXIgcmV0dXJuZWQgZGF0YS4KCjMuICBXcmFuZ2xpbmcgZGF0YSBpbnRvIHRpZHkgc3RydWN0dXJlcy4KCkZvciB0aG9zZSB0aGF0IGNyZWF0ZWQgYSBUd2l0dGVyIERldmVsb3BlciBhY2NvdW50LCBsb2FkIHRoZSB7cnR3ZWV0fSBwYWNrYWdlIHRoYXQgd2UnbGwgYmUgdXNpbmcgdG8gYWNjb21wbGlzaCBhbGwgdGhyZWUgb2YgdGhlIGdvYWxzIGxpc3RlZCBhYm92ZToKCmBgYHtyfQpsaWJyYXJ5KHJ0d2VldCkKYGBgCgojIyMjIE90aGVyIFBhY2thZ2VzCgpGaW5hbGx5LCB0aGVyZSBhcmUgYSBmZXcgb3RoZXIgcGFja2FnZXMgd2UnbGwgbmVlZCB0byBnZXQgc3RhcnRlZC4gVGhlIGZpcnN0IHR3byBzaG91bGQgbG9vayBmYW1pbGlhciB3aGlsZSB0aGlyZCB7d29yZGNsb3VkMn0gcGFja2FnZSBpcyBoYW5keSBsaXR0bGUgcGFja2FnZSBmb3IgY3JlYXRpbmcgaW50ZXJhY3RpdmUgd29yZCBjbG91ZHMuCgpgYGB7cn0KbGlicmFyeSh0aWR5dmVyc2UpCmxpYnJhcnkoaGVyZSkKbGlicmFyeSh3b3JkY2xvdWQyKQpgYGAKCiMjIDIuIFdSQU5HTEUKClRoZSBpbXBvcnRhbmNlIG9mIGRhdGEgd3JhbmdsaW5nLCBwYXJ0aWN1bGFybHkgd2hlbiB3b3JraW5nIHdpdGggdGV4dCwgaXMgZGlmZmljdWx0IHRvIG92ZXJzdGF0ZS4gSnVzdCBhcyBhIHJlZnJlc2hlciwgd3JhbmdsaW5nIGludm9sdmVzIHRoZSBpbml0aWFsIHN0ZXBzIG9mIGdvaW5nIGZyb20gcmF3IGRhdGEgdG8gYSBkYXRhc2V0IHRoYXQgY2FuIGJlIGV4cGxvcmVkIGFuZCBtb2RlbGVkIFtAa3J1bW0yMDE4XS4gVGhpcyBjYXNlIHN0dWR5IHdpbGwgcGxhY2UgYSBoZWF2eSBlbXBoYXNpcyBvbiBwcmVwYXJpbmcgdGV4dCBmb3IgYW5hbHlzaXMgYW5kIGluIHBhcnRpY3VsYXIgd2UnbGwgbGVhcm4gaG93IHRvOgoKYS4gICoqSW1wb3J0IFR3ZWV0cyoqLiBGaXJzdCB3ZSByZXZpc2l0IHRoZSBmYW1pbGlhciBgcmVhZF9jc3YoKWAgZnVuY3Rpb24gZm9yIHJlYWRpbmcgaW4gb3VyIENDU1MgYW5kIE5HU1MgdHdlZXRzIGludG8gUi4gRm9yIHRob3NlIG9mIHlvdSB3aG8gY3JlYXRlZCBhIFR3aXR0ZXIgRGV2ZWxvcGVyIEFjY291bnQsIHdlJ2xsIGFsc28gZGVtb25zdHJhdGUgdGhlIHVzZSBvZiB0aGUge3J0d2VldH0gcGFja2FnZSBmb3IgZG93bmxvYWRpbmcgZGF0YSBkaXJlY3RseSBmcm9tIFR3aXR0ZXIuCmIuICAqKlJlc3RydWN0dXJlIERhdGEqKi4gV2UgZm9jdXMgb24gcmVtb3ZpbmcgZXh0cmFuZW91cyBkYXRhIHVzaW5nIHRoZSBgc2VsZWN0KClgIGFuZCBgZmlsdGVyKClgIGZ1bmN0aW9ucyBmcm9tIHtkcGx5cn0sIGFuZCByZXZpc2l0IGZ1bmN0aW9ucyBmcm9tIHRoZSBbVGlkeSBZb3VyIERhdGEgUHJpbWVyXShodHRwczovL3JzdHVkaW8uY2xvdWQvbGVhcm4vcHJpbWVycy80LjMpIGZvciBtZXJnaW5nIGRhdGEgZnJhbWVzLgpjLiAgKipUaWR5IFRleHQuKiogRmluYWxseSwgd2UgaW50cm9kdWNlIHRoZSB7dGlkeXRleHR9IHBhY2thZ2UgdG8gInRpZHkiIGFuZCB0b2tlbml6ZSBvdXIgdHdlZXRzIGluIG9yZGVyIHRvIGNyZWF0ZSBvdXIgZGF0YSBmcmFtZSBmb3IgYW5hbHlzaXMuIFdlIGFsc28gaW50cm9kdWNlIGEgbmV3IGpvaW4gZnVuY3Rpb24gdG8gcmVtb3ZlICJzdG9wIHdvcmRzIiB0aGF0IGRvbid0IGFkZCBtdWNoIHZhbHVlIHRvIG91ciBhbmFseXNpcy4KCiMjIyAyYS4gUGFydCAxOiBJbXBvcnQgVHdlZXRzIGZyb20gQVBJIChPcHRpb25hbCkKClRoaXMgc2VjdGlvbiBpcyBvcHRpb25hbCBhbmQgZm9yIHRob3NlIHRob3NlIFtzZXR1cCBhIFR3aXR0ZXIgRGV2ZWxvcGVyIEFjY291bnQgYW5kIEFwcF0oaHR0cHM6Ly9sYXNlci1pbnN0aXR1dGUuZ2l0aHViLmlvL2xhc2VyLXN1bmRyeS90d2l0dGVyLXNldHVwLmh0bWwjSW50cm9kdWN0aW9uKS4gVGhlIEltcG9ydCBUd2VldHMgc2VjdGlvbiBpbnRyb2R1Y2VzIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb25zIGZyb20gdGhlIHtydHdlZXR9IHBhY2thZ2UgZm9yIHJlYWRpbmcgVHdpdHRlciBkYXRhIGludG8gUjoKCi0gICBbYGNyZWF0ZV90b2tlbigpYF0oaHR0cHM6Ly9jcmFuLnItcHJvamVjdC5vcmcvd2ViL3BhY2thZ2VzL3J0d2VldC92aWduZXR0ZXMvYXV0aC5odG1sKSBTZW5kcyByZXF1ZXN0IHRvIGdlbmVyYXRlIGF1dGhvcml6YXRpb24gdG9rZW5zIGZvciB1c2Ugb2YgdGhlIFR3aXR0ZXIgQVBJLgotICAgW2BzZWFyY2hfdHdlZXRzKClgXShodHRwczovL3d3dy5yZG9jdW1lbnRhdGlvbi5vcmcvcGFja2FnZXMvcnR3ZWV0L3ZlcnNpb25zLzAuNy4wL3RvcGljcy9zZWFyY2hfdHdlZXRzKcKgUHVsbHMgdXAgdG8gMTgsMDAwIHR3ZWV0cyBmcm9tIHRoZSBsYXN0IDYtOSBkYXlzIG1hdGNoaW5nIHByb3ZpZGVkIHNlYXJjaCB0ZXJtcy7CoAotICAgW2BzZWFyY2hfdHdlZXRzMigpYF0oaHR0cHM6Ly93d3cucmRvY3VtZW50YXRpb24ub3JnL3BhY2thZ2VzL3J0d2VldC92ZXJzaW9ucy8wLjcuMC90b3BpY3Mvc2VhcmNoX3R3ZWV0cynCoFJldHVybnMgZGF0YSBmcm9twqAqKm11bHRpcGxlKirCoHNlYXJjaCBxdWVyaWVzLsKgCi0gICBbYGdldF90aW1lbGluZXMoKWBdKGh0dHBzOi8vd3d3LnJkb2N1bWVudGF0aW9uLm9yZy9wYWNrYWdlcy9ydHdlZXQvdmVyc2lvbnMvMC43LjAvdG9waWNzL3NlYXJjaF90d2VldHMpwqBSZXR1cm5zIHVwIHRvIDMsMjAwIHR3ZWV0cyBvZiBvbmUgb3IgbW9yZSBzcGVjaWZpZWQgVHdpdHRlciB1c2Vycy4KCiMjIyMgQXV0aG9yaXphdGlvbiBtZXRob2RzCgpVc2VycyBjYW4gY3JlYXRlIHRoZWlyIHBlcnNvbmFsIFR3aXR0ZXIgdG9rZW4gaW4gdHdvIGRpZmZlcmVudCB3YXlzLiBUSGUgcmVjb21tZW5kIG1ldGhvZCBpcyBvdXRsaW5lZCBiZWxvdy4KCi0gICBOYXZpZ2F0ZSB0byBbZGV2ZWxvcGVyLnR3aXR0ZXIuY29tL2VuL2FwcHNdKGh0dHBzOi8vZGV2ZWxvcGVyLnR3aXR0ZXIuY29tL2VuL2FwcHMpIGFuZCBzZWxlY3QgeW91ciBUd2l0dGVyIGFwcAotICAgQ2xpY2sgdGhlIHRhYiBsYWJlbGVkIGBLZXlzIGFuZCB0b2tlbnNgIHRvIHJldHJpZXZlIHlvdXIga2V5cy4KLSAgIExvY2F0ZSB0aGUgYENvbnN1bWVyIEFQSSBrZXlzYCAoYWthICJBUEkgU2VjcmV0IikuCgohW10oaW1nL2NyZWF0ZS1hcHAtNi5wbmcpe3dpZHRoPSIxMDAlIn0KCi0gICBTY3JvbGwgZG93biB0byBgQWNjZXNzIHRva2VuICYgYWNjZXNzIHRva2VuIHNlY3JldGAgYW5kIGNsaWNrIGBDcmVhdGVgCgohW10oaW1hZ2VzL2NyZWF0ZS1hcHAtNy5wbmcpe3dpZHRoPSIxMDAlIn0KCi0gICBDb3B5IGFuZCBwYXN0ZSB0aGUgZm91ciBrZXlzIChhbG9uZyB3aXRoIHRoZSBuYW1lIG9mIHlvdXIgYXBwKSBpbnRvIGFuIFIgc2NyaXB0IGZpbGUgYW5kIHBhc3MgdGhlbSBhbG9uZyB0byBgY3JlYXRlX3Rva2VuKClgLiBOb3RlLCB0aGVzZSBrZXlzIGFyZSBuYW1lZCBzZWNyZXQgZm9yIGEgcmVhc29uLiBJIHJlY29tbWVuZCBzZXR0aW5nIHVwIHlvdXIgdG9rZW4gaW4gYSBzZXBhcmF0ZSBSIHNjcmlwdCB0aGFuIHRoZSBvbmUgdGhhdCB5b3Ugd2lsbCBldmVudHVhbGx5IHNoYXJlLgoKYGBge3IsIGV2YWw9RkFMU0V9CiMjIHN0b3JlIGFwaSBrZXlzICh0aGVzZSBhcmUgZmFrZSBleGFtcGxlIHZhbHVlczsgcmVwbGFjZSB3aXRoIHlvdXIgb3duIGtleXMpCmFwcF9uYW1lIDwtICJUZXh0IE1pbmluZyBpbiBFZHVjYXRpb24iCmFwaV9rZXkgPC0gImFmWVM0dmJJbFBBajA5NkU2MGM0VzFmaUsiCmFwaV9zZWNyZXRfa2V5IDwtICJiSTkxa3FucUZvTkNyWkZic2pBV0hENGdKOTFMUUFoZENKWENqM3lzY2Z1VUx0Tmt1dSIKYWNjZXNzX3Rva2VuIDwtICI5NTUxNDUxMjYyLXdLMkVtQTk0Mmt4WllJd2E1TE1LWm9RQTRYYzJ1eUlpRXd1MllYTCIKYWNjZXNzX3Rva2VuX3NlY3JldCA8LSAiOXZwaVNHS2cxZklQUXR4YzVkNUVTaUZsWlFwZmJrbkVOMWYxbTJ4ZTVieXc3IgoKIyMgYXV0aGVudGljYXRlIHZpYSB3ZWIgYnJvd3Nlcgp0b2tlbiA8LSBjcmVhdGVfdG9rZW4oCiAgYXBwID0gYXBwX25hbWUsCiAgY29uc3VtZXJfa2V5ID0gYXBpX2tleSwKICBjb25zdW1lcl9zZWNyZXQgPSBhcGlfc2VjcmV0X2tleSwKICBhY2Nlc3NfdG9rZW4gPSBhY2Nlc3NfdG9rZW4sCiAgYWNjZXNzX3NlY3JldCA9IGFjY2Vzc190b2tlbl9zZWNyZXQpCmBgYAoKIyMjIyBBdXRob3JpemF0aW9uIGluIGZ1dHVyZSBSIHNlc3Npb25zCgotICAgVGhlIGBjcmVhdGVfdG9rZW4oKWAgZnVuY3Rpb24gc2hvdWxkIGF1dG9tYXRpY2FsbHkgc2F2ZSB5b3VyIHRva2VuIGFzIGFuIGVudmlyb25tZW50IHZhcmlhYmxlIGZvciB5b3UuIFNvIG5leHQgdGltZSB5b3Ugc3RhcnQgYW4gUiBzZXNzaW9uIFtvbiB0aGUgc2FtZSBtYWNoaW5lXSwgcnR3ZWV0IHNob3VsZCBhdXRvbWF0aWNhbGx5IGZpbmQgeW91ciB0b2tlbi4KLSAgIFRvIG1ha2Ugc3VyZSBpdCB3b3JrcywgcmVzdGFydCB5b3VyIFIgc2Vzc2lvbiwgcnVuIHRoZSBmb2xsb3dpbmcgY29kZSwgYW5kIGFnYWluIGNoZWNrIHRvIG1ha2Ugc3VyZSB0aGUgYXBwIG5hbWUgYW5kIGBhcGlfa2V5YCBtYXRjaC4KCmBgYHtyfQojIyBjaGVjayB0byBzZWUgaWYgdGhlIHRva2VuIGlzIGxvYWRlZApnZXRfdG9rZW4oKQpgYGAKClRoYXQncyBpdCEKCiMjIyMgU2VhcmNoIFR3ZWV0cwoKU2luY2Ugb25lIG9mIG91ciBnb2FscyBmb3IgdGhpcyB3YWxrdGhyb3VnaCBpcyBhIHZlcnkgY3J1ZGUgcmVwbGljYXRpb24gb2YgdGhlIHN0dWR5IGJ5IFJvc2VuYmVyZyBldCBhbC4gKDIwMjEpLCBsZXQncyBiZWdpbiBieSBpbnRyb2R1Y2luZyB0aGXCoGBzZWFyY2hfdHdlZXRzKClgwqBmdW5jdGlvbiB0byB0cnkgcmVhZGluZyBpbnRvIFIgNSwwMDAgdHdlZXRzIGNvbnRhaW5pbmcgdGhlIE5HU1MgaGFzaHRhZyBhbmQgc3RvcmUgYXMgYSBuZXcgZGF0YSBmcmFtZcKgYG5nc3NfYWxsX3R3ZWV0c2AuCgpUeXBlIG9yIGNvcHkgdGhlIGZvbGxvd2luZyBjb2RlIGludG8geW91ciBSIHNjcmlwdCBvciBjb25zb2xlIGFuZCBydW46CgpgYGB7cn0Kbmdzc19hbGxfdHdlZXRzIDwtIHNlYXJjaF90d2VldHMocSA9ICIjTkdTU2NoYXQiLCBuPTUwMDApCmBgYAoKTm90ZSB0aGF0IHRoZSBmaXJzdCBhcmd1bWVudMKgYHEgPWDCoHRoYXQgdGhlwqBgc2VhcmNoX3R3ZWV0cygpYMKgZnVuY3Rpb24gZXhwZWN0cyBpcyB0aGUgc2VhcmNoIHRlcm0gaW5jbHVkZWQgaW4gcXVvdGF0aW9uIG1hcmtzIGFuZCB0aGF0wqBgbiA9YMKgc3BlY2lmaWVzIHRoZSBtYXhpbXVtIG51bWJlciBvZiB0d2VldHMKCiMjIyMgW1lvdXIgVHVybl17c3R5bGU9ImNvbG9yOiBncmVlbjsifcKg4qS1IHtzdHlsZT0iZm9udC1zdHlsZTogbm9ybWFsOyBmb250LXZhcmlhbnQtY2Fwczogbm9ybWFsOyBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyBvcnBoYW5zOiBhdXRvOyB0ZXh0LWFsaWduOiBzdGFydDsgdGV4dC1pbmRlbnQ6IDBweDsgdGV4dC10cmFuc2Zvcm06IG5vbmU7IHdoaXRlLXNwYWNlOiBub3JtYWw7IHdpZG93czogYXV0bzsgd29yZC1zcGFjaW5nOiAwcHg7IC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgyNiwgMjYsIDI2LCAwLjMpOyAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IGF1dG87IC13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6IDBweDsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyBjYXJldC1jb2xvcjogcmdiKDAsIDAsIDApOyBjb2xvcjogcmdiKDAsIDAsIDApOyJ9CgpWaWV3IHlvdXIgbmV3wqBgbmdzc19hbGxfdHdlZXRzYGRhdGEgZnJhbWUgdXNpbmcgdGhlIGNvZGUgY2h1bmsgYmVsb3cgYW5kIGFuc3dlciB0aGUgZm9sbG93aW5nIHF1ZXN0aW9uczoKCmBgYHtyfQpuZ3NzX2FsbF90d2VldHMKYGBgCgoxLiAgSG93IG1hbnkgdHdlZXRzIGRpZCBvdXIgcXVlcnkgdXNpbmcgdGhlIFR3aXR0ZXIgQVBJIGFjdHVhbGx5IHJldHVybj8gSG93IG1hbnkgdmFyaWFibGVzPwoKICAgIC0gICAKCjIuICBXaHkgZG8geW91IHRoaW5rIG91ciBxdWVyeSBwdWxsZWQgaW4gZmFyIGxlc3MgdGhhbiA1LDAwMCB0d2VldHMgcmVxdWVzdGVkPwoKICAgIC0gICAKCjMuICBEb2VzIG91ciBxdWVyeSBhbHNvIGluY2x1ZGUgcmV0d2VldHM/IEhvdyBkbyB5b3Uga25vdz8KCiAgICAtICAgCgojIyMjIFJlbW92ZSBSZXR3ZWV0cwoKV2hpbGUgbm90IGV4cGxpY2l0bHkgbWVudGlvbmVkIGluIHRoZSBwYXBlciwgaXQncyBsaWtlbHkgdGhlIGF1dGhvcnMgcmVtb3ZlZCByZXR3ZWV0cyBpbiB0aGVpciBxdWVyeSBzaW5jZSBhIHJldHdlZXQgaXMgc2ltcGx5IHNvbWVvbmUgZWxzZSByZXBvc3Rpbmcgc29tZW9uZSBlbHNlJ3MgdHdlZXQgYW5kIHdvdWxkIGR1cGxpY2F0ZSB0aGUgZXhhY3Qgc2FtZSBjb250ZW50IG9mIHRoZSBvcmlnaW5hbC4KCkxldCdzIHVzZSB0aGXCoGBpbmNsdWRlX3J0cyA9YMKgYXJndW1lbnQgdG8gcmVtb3ZlIGFueSByZXR3ZWV0cyBieSBzZXR0aW5nIGl0IHRvwqBgRkFMU0VgOgoKYGBge3J9Cm5nc3Nfbm9uX3JldHdlZXRzIDwtIHNlYXJjaF90d2VldHMoIiNOR1NTY2hhdCIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG49NTAwMCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZV9ydHMgPSBGQUxTRSkKYGBgCgojIyMjIFVzaW5nIHRoZSBPUiBPcGVyYXRvcgoKSWYgeW91IHJlY2FsbCBmcm9tIHRoZSBbRGF0YSBTb3VyY2VzXSBzZWN0aW9uIGFib3ZlLCB0aGUgYXV0aG9ycyBhY2Nlc3NlZCB0d2VldHMgYW5kIHVzZXIgaW5mb3JtYXRpb24gZnJvbSB0aGUgaGFzaHRhZy1iYXNlZCBcI05HU1NjaGF0IG9ubGluZSBjb21tdW5pdHksIGFsbCB0d2VldHMgdGhhdCBpbmNsdWRlZCBhbnkgb2YgdGhlIGZvbGxvd2luZyBwaHJhc2VzLCB3aXRoICIvIiBpbmRpY2F0aW5nIGFuIGFkZGl0aW9uYWwgcGhyYXNlIGZlYXR1cmluZyB0aGUgcmVzcGVjdGl2ZSBwbHVyYWwgZm9ybTogIm5nc3MiLCAibmV4dCBnZW5lcmF0aW9uIHNjaWVuY2Ugc3RhbmRhcmQvcyIsICJuZXh0IGdlbiBzY2llbmNlIHN0YW5kYXJkL3MiLgoKTGV0J3MgbW9kaWZ5IG91ciBxdWVyeSB1c2luZyB0aGXCoGBPUmDCoG9wZXJhdG9yIHRvIGFsc28gaW5jbHVkZSAibmdzcyIgc28gaXQgd2lsbCByZXR1cm4gdHdlZXRzIGNvbnRhaW5pbmcgZWl0aGVyIFwjTkdTU2NoYXQgb3IgIm5nc3MiIGFuZCBhc3NpZ24gdG/CoGBuZ3NzX29yX3R3ZWV0c2A6CgpgYGB7cn0Kbmdzc19vcl90d2VldHMgPC0gc2VhcmNoX3R3ZWV0cyhxID0gIiNOR1NTY2hhdCBPUiBuZ3NzIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbj01MDAwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlX3J0cyA9IEZBTFNFKQpgYGAKCiMjIyMgW1lvdXIgVHVybl17c3R5bGU9ImNvbG9yOiBncmVlbjsifcKg4qS1IHtzdHlsZT0iZm9udC1zdHlsZTogbm9ybWFsOyBmb250LXZhcmlhbnQtY2Fwczogbm9ybWFsOyBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyBvcnBoYW5zOiBhdXRvOyB0ZXh0LWFsaWduOiBzdGFydDsgdGV4dC1pbmRlbnQ6IDBweDsgdGV4dC10cmFuc2Zvcm06IG5vbmU7IHdoaXRlLXNwYWNlOiBub3JtYWw7IHdpZG93czogYXV0bzsgd29yZC1zcGFjaW5nOiAwcHg7IC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgyNiwgMjYsIDI2LCAwLjMpOyAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IGF1dG87IC13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6IDBweDsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyBjYXJldC1jb2xvcjogcmdiKDAsIDAsIDApOyBjb2xvcjogcmdiKDAsIDAsIDApOyJ9CgpUcnkgaW5jbHVkaW5nIGJvdGggc2VhcmNoIHRlcm1zIGJ1dCBleGNsdWRpbmcgdGhlwqBgT1JgwqBvcGVyYXRvciB0byBhbnN3ZXIgdGhlIGZvbGxvd2luZyBxdWVzdGlvbjoKCmBgYHtyfQpuZ3NzX2JvdGhfdHdlZXRzIDwtIHNlYXJjaF90d2VldHMocSA9ICIjTkdTU2NoYXQgbmdzcyIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG49NTAwMCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZV9ydHMgPSBGQUxTRSkKYGBgCgoxLiAgRG9lcyBleGNsdWRpbmcgdGhlwqBgT1JgwqBvcGVyYXRvciByZXR1cm4gbW9yZSB0d2VldHMsIHRoZSBzYW1lIG51bWJlciBvZiB0d2VldHMsIG9yIGZld2VyIHR3ZWV0cz8gV2h5PwoKICAgIC0gICAKCjIuICBXaGF0IG90aGVyIHVzZWZ1bCBhcmd1bWVudHMgZG9lcyB0aGXCoGBzZWFyY2hfdHdlZXQoKWDCoGZ1bmN0aW9uIGNvbnRhaW4/IFRyeSBhZGRpbmcgb25lIGFuZCBzZWUgd2hhdCBoYXBwZW5zLgoKICAgIC0gICAKCioqSGludDoqKiBVc2UgdGhlwqBgP3NlYXJjaF90d2VldHNgwqBoZWxwIGZ1bmN0aW9uIHRvIGxlYXJuIG1vcmUgYWJvdXQgdGhlwqBgcWDCoGFyZ3VtZW50IGFuZCBvdGhlciBhcmd1bWVudHMgZm9yIGNvbXBvc2luZyBzZWFyY2ggcXVlcmllcy4KCiMjIyMgVXNlIE11bHRpcGxlIFF1ZXJpZXMKClVuZm9ydHVuYXRlbHksIHRoZcKgYE9SYMKgb3BlcmF0b3Igd2lsbCBvbmx5IGdldCB1cyBzbyBmYXIuIEluIG9yZGVyIHRvIGluY2x1ZGUgdGhlIGFkZGl0aW9uYWwgc2VhcmNoIHRlcm1zLCB3ZSB3aWxsIG5lZWQgdG8gdXNlIHRoZcKgYGMoKWDCoGZ1bmN0aW9uIHRvIGNvbWJpbmUgb3VyIHNlYXJjaCB0ZXJtcyBpbnRvIGEgc2luZ2xlIGxpc3QuCgpUaGXCoGBydHdlZXRzYMKgcGFja2FnZSBoYXMgYW4gYWRkaXRpb25hbMKgYHNlYXJjaF90d2VldHMyKClgwqBmdW5jdGlvbiBmb3IgdXNpbmcgbXVsdGlwbGUgcXVlcmllcyBpbiBhIHNlYXJjaC4gVG8gZG8gdGhpcywgZWl0aGVyIHdyYXAgc2luZ2xlIHF1b3RlcyBhcm91bmQgYSBzZWFyY2ggcXVlcnkgdXNpbmcgZG91YmxlIHF1b3RlcywgZS5nLizCoGBxID0gJyJuZXh0IGdlbiBzY2llbmNlIHN0YW5kYXJkIidgwqBvciBlc2NhcGUgZWFjaCBpbnRlcm5hbCBkb3VibGUgcXVvdGUgd2l0aCBhIHNpbmdsZSBiYWNrc2xhc2gsIGUuZy4swqBgcSA9ICJcIm5leHQgZ2VuIHNjaWVuY2Ugc3RhbmRhcmRcIiJgLgoKQ29weSBhbmQgcGFzdCB0aGUgZm9sbG93aW5nIGNvZGUgdG8gc3RvcmUgdGhlIHJlc3VsdHMgb2Ygb3VyIHF1ZXJ5IGluwqBgbmdzc190d2VldHNgOgoKYGBge3J9Cm5nc3NfdHdlZXRzIDwtIHNlYXJjaF90d2VldHMyKGMoIiNOR1NTY2hhdCBPUiBuZ3NzIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyJuZXh0IGdlbmVyYXRpb24gc2NpZW5jZSBzdGFuZGFyZCInLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnIm5leHQgZ2VuZXJhdGlvbiBzY2llbmNlIHN0YW5kYXJkcyInLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnIm5leHQgZ2VuIHNjaWVuY2Ugc3RhbmRhcmQiJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyJuZXh0IGdlbiBzY2llbmNlIHN0YW5kYXJkcyInICksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuPTUwMDAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlX3J0cyA9IEZBTFNFKQpgYGAKCiMjIyMgT3VyIEZpcnN0IERpY3Rpb25hcnkKClJlY2FsbCB0aGF0IGZvciBvdXIgcmVzZWFyY2ggcXVlc3Rpb24gd2Ugd2FudGVkIHRvIGNvbXBhcmUgcHVibGljIHNlbnRpbWVudCBhYm91dCBib3RoIHRoZSBOR1NTIGFuZCBDQ1NTIHN0YXRlIHN0YW5kYXJkcy4gTGV0J3MgZ28gYWhlYWQgYW5kIGNyZWF0ZSBvdXIgdmVyeSBmaXJzdCAiZGljdGlvbmFyeSIgZm9yIGlkZW50aWZ5aW5nIHR3ZWV0cyByZWxhdGVkIHRvIGVpdGhlciBzZXQgb2Ygc3RhbmRhcmRzLCBhbmQgdGhlbiB1c2UgdGhhdCBkaWN0aW9uYXJ5IGZvciBvdXIgdGhlwqBgcSA9YMKgcXVlcnkgYXJndW1lbnQgdG8gcHVsbCB0d2VldHMgcmVsYXRlZCB0byB0aGUgc3RhdGUgc3RhbmRhcmRzLgoKVG8gZG8gc28sIHdlJ2xsIG5lZWQgdG8gYWRkIHNvbWUgYWRkaXRpb25hbCBzZWFyY2ggdGVybXMgdG8gb3VyIGxpc3Q6CgpgYGB7cn0Kbmdzc19kaWN0aW9uYXJ5IDwtIGMoIiNOR1NTY2hhdCBPUiBuZ3NzIiwgCiAgICAgICAgICAgICAgICAgICAgICcibmV4dCBnZW5lcmF0aW9uIHNjaWVuY2Ugc3RhbmRhcmQiJywgCiAgICAgICAgICAgICAgICAgICAgICcibmV4dCBnZW5lcmF0aW9uIHNjaWVuY2Ugc3RhbmRhcmRzIicsIAogICAgICAgICAgICAgICAgICAgICAnIm5leHQgZ2VuIHNjaWVuY2Ugc3RhbmRhcmQiJywgCiAgICAgICAgICAgICAgICAgICAgICcibmV4dCBnZW4gc2NpZW5jZSBzdGFuZGFyZHMiJykgCgpuZ3NzX3R3ZWV0cyA8LSBzZWFyY2hfdHdlZXRzMihuZ3NzX2RpY3Rpb25hcnksIG49NTAwMCwgaW5jbHVkZV9ydHMgPSBGQUxTRSkKYGBgCgpOb3cgbGV0J3MgY3JlYXRlIGEgZGljdGlvbmFyeSBmb3IgdGhlIENvbW1vbiBDb3JlIFN0YXRlIFN0YW5kYXJkcyBhbmQgcGFzcyB0aGF0IHRvIG91csKgYHNlYXJjaF90d2VldHMoKWDCoGZ1bmN0aW9uIHRvIGdldCB0aGUgbW9zdCByZWNlbnQgdHdlZXRzOgoKYGBge3J9CmNjc3NfZGljdGlvbmFyeSA8LSBjKCIjY29tbW9uY29yZSIsICciY29tbW9uIGNvcmUiJykgCmNjc3NfdHdlZXRzIDwtIAogIGNjc3NfZGljdGlvbmFyeSAlPiUgCiAgc2VhcmNoX3R3ZWV0czIobj01MDAwLCBpbmNsdWRlX3J0cyA9IEZBTFNFKQpgYGAKCk5vdGljZSB0aGF0IHlvdSBjYW4gdXNlIHRoZSBwaXBlIG9wZXJhdG9yIHdpdGggdGhlwqBgc2VhcmNoX3R3ZWV0cygpYMKgZnVuY3Rpb24ganVzdCBsaWtlIHlvdSB3b3VsZCBvdGhlciBmdW5jdGlvbnMgZnJvbSB0aGUgdGlkeXZlcnNlLgoKIyMjIyBbWW91ciBUdXJuXXtzdHlsZT0iY29sb3I6IGdyZWVuOyJ9wqDipLUge3N0eWxlPSJmb250LXN0eWxlOiBub3JtYWw7IGZvbnQtdmFyaWFudC1jYXBzOiBub3JtYWw7IGxldHRlci1zcGFjaW5nOiBub3JtYWw7IG9ycGhhbnM6IGF1dG87IHRleHQtYWxpZ246IHN0YXJ0OyB0ZXh0LWluZGVudDogMHB4OyB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgd2hpdGUtc3BhY2U6IG5vcm1hbDsgd2lkb3dzOiBhdXRvOyB3b3JkLXNwYWNpbmc6IDBweDsgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDI2LCAyNiwgMjYsIDAuMyk7IC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogYXV0bzsgLXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aDogMHB4OyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGNhcmV0LWNvbG9yOiByZ2IoMCwgMCwgMCk7IGNvbG9yOiByZ2IoMCwgMCwgMCk7In0KCjEuICBVc2UgdGhlwqBgc2VhcmNoX3R3ZWV0c2DCoGZ1bmN0aW9uIHRvIGNyZWF0ZSB5b3Ugb3duIGN1c3RvbSBxdWVyeSBmb3IgYSB0d2l0dGVyIGhhc2h0YWcgb3IgdG9waWMocykgb2YgaW50ZXJlc3QuCgojIyMjIE90aGVyIFVzZWZ1bCBRdWVyaWVzCgpGb3IgeW91ciBpbmRlcGVuZGVudCBhbmFseXNpcywgeW91IG1heSBiZSBpbnRlcmVzdCBpbiBleHBsb3JpbmcgcG9zdHMgYnkgc3BlY2lmaWMgdXNlcnMgcmF0aGVyIHRoYW4gdG9waWNzLCBrZXkgd29yZHMsIG9yIGhhc2h0YWdzLiBZZXMsIHRoZXJlIGlzIGEgZnVuY3Rpb24gZm9yIHRoYXQgdG9vIQoKRm9yIGV4YW1wbGUsIGxldCdzIGNyZWF0ZSBhbm90aGVyIGxpc3QgY29udGFpbmluZyB0aGUgdXNlcm5hbWVzIG9mIG1lIGFuZCBzb21lIG9mIG15IGNvbGxlYWd1ZXMgYXQgdGhlIEZyaWRheSBJbnN0aXR1dGUgdXNpbmcgdGhlwqBgYygpYMKgZnVuY3Rpb24gYWdhaW4gYW5kIHVzZSB0aGXCoGBnZXRfdGltZWxpbmVzKClgwqBmdW5jdGlvbiB0byBnZXQgdGhlIG1vc3QgcmVjZW50IHR3ZWV0cyBmcm9tIGVhY2ggb2YgdGhvc2UgdXNlcnM6CgpgYGB7cn0KZmkgPC0gYygic2JrZWxsb2dnIiwgIlRvb1N3ZWV0R2VlayIsICJoYXNwaXJlcyIsICJ0YXJoZWVsOTMiLCAiZHJjYWxsaWVfdHdlZXRzIiwgIkFsZXhEcmVpZXIiKSAKCmZpX3R3ZWV0cyA8LSBmaSAlPiUgZ2V0X3RpbWVsaW5lcyhpbmNsdWRlX3J0cz1GQUxTRSkKYGBgCgpBbmQgbGV0J3MgdXNlIHRoZcKgYHNhbXBsZV9uKClgwqBmdW5jdGlvbiBmcm9tIHRoZcKgYGRwbHlyYMKgcGFja2FnZSB0byBwaWNrIDEwIHJhbmRvbSB0d2VldHMgYW5kIHVzZcKgYHNlbGVjdCgpYMKgdG8gc2VsZWN0IGFuZCB2aWV3IGp1c3QgdGhlwqBgc2NyZWVubmFtZWDCoGFuZMKgYHRleHRgwqBjb2x1bW5zIHRoYXQgY29udGFpbnMgdGhlIHVzZXIgYW5kIHRoZSBjb250ZW50IG9mIHRoZWlyIHBvc3Q6CgpgYGB7cn0Kc2FtcGxlX24oZmlfdHdlZXRzLCAxMCkgJT4lIHNlbGVjdChzY3JlZW5fbmFtZSwgdGV4dCkKYGBgCgpXZSd2ZSBvbmx5IHNjcmF0Y2hlZCB0aGUgc3VyZmFjZSBvZiB0aGUgbnVtYmVyIG9mIGZ1bmN0aW9ucyBhdmFpbGFibGUgaW4gdGhlwqBgcnR3ZWV0c2DCoHBhY2thZ2UgZm9yIHNlYXJjaGluZyBUd2l0dGVyLiBVc2UgdGhlIGZvbGxvd2luZyBmdW5jdGlvbiB0byBsZWFybiBtb3JlIGFib3V0IHRoZSB7cmV0d2VlfSBwYWNrYWdlOgoKYGBge3IsIGV2YWw9Rn0KdmlnbmV0dGUoImludHJvIiwgcGFja2FnZT0icnR3ZWV0IikKYGBgCgojIyMjIFtZb3VyIFR1cm5de3N0eWxlPSJjb2xvcjogZ3JlZW47In3CoOKktSB7c3R5bGU9ImZvbnQtc3R5bGU6IG5vcm1hbDsgZm9udC12YXJpYW50LWNhcHM6IG5vcm1hbDsgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgb3JwaGFuczogYXV0bzsgdGV4dC1hbGlnbjogc3RhcnQ7IHRleHQtaW5kZW50OiAwcHg7IHRleHQtdHJhbnNmb3JtOiBub25lOyB3aGl0ZS1zcGFjZTogbm9ybWFsOyB3aWRvd3M6IGF1dG87IHdvcmQtc3BhY2luZzogMHB4OyAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMjYsIDI2LCAyNiwgMC4zKTsgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiBhdXRvOyAtd2Via2l0LXRleHQtc3Ryb2tlLXdpZHRoOiAwcHg7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgY2FyZXQtY29sb3I6IHJnYigwLCAwLCAwKTsgY29sb3I6IHJnYigwLCAwLCAwKTsifQoKVG8gY29uY2x1ZGUgU2VjdGlvbiAyYSwgdHJ5IG9uZSBvZiB0aGUgZm9sbG93aW5nIHNlYXJjaCBmdW5jdGlvbnMgZnJvbSB0aGXCoGBydHdlZXRgwqB2aWduZXR0ZToKCjEuICBgZ2V0X3RpbWVsaW5lcygpYMKgR2V0IHRoZSBtb3N0IHJlY2VudCAzLDIwMCB0d2VldHMgZnJvbSB1c2Vycy4KMi4gIGBzdHJlYW1fdHdlZXRzKClgwqBSYW5kb21seSBzYW1wbGUgKGFwcHJveGltYXRlbHkgMSUpIGZyb20gdGhlIGxpdmUgc3RyZWFtIG9mIGFsbCB0d2VldHMuCjMuICBgZ2V0X2ZyaWVuZHMoKWDCoFJldHJpZXZlIGEgbGlzdCBvZiBhbGwgdGhlIGFjY291bnRzIGEgdXNlciBmb2xsb3dzLgo0LiAgYGdldF9mb2xsb3dlcnMoKWDCoFJldHJpZXZlIGEgbGlzdCBvZiB0aGUgYWNjb3VudHMgZm9sbG93aW5nIGEgdXNlci4KNS4gIGBnZXRfZmF2b3JpdGVzKClgwqBHZXQgdGhlIG1vc3QgcmVjZW50bHkgZmF2b3JpdGVkIHN0YXR1c2VzIGJ5IGEgdXNlci4KNi4gIGBnZXRfdHJlbmRzKClgwqBEaXNjb3ZlciB3aGF0J3MgY3VycmVudGx5IHRyZW5kaW5nIGluIGEgY2l0eS4KNy4gIGBzZWFyY2hfdXNlcnMoKWDCoFNlYXJjaCBmb3IgMSwwMDAgdXNlcnMgd2l0aCB0aGUgc3BlY2lmaWMgaGFzaHRhZyBpbiB0aGVpciBwcm9maWxlIGJpb3MuCgojIyMgMmEuIFBhcnQgMjogSW1wb3J0IFR3ZWV0cyBmcm9tIENTVgoKRmlyc3QsIGxldCdzIHVzZSB0aGUgYnkgbm93IGZhbWlsaWFywqBgcmVhZF9jc3YoKWDCoGFuZMKgYGhlcmUoKWDCoGZ1bmN0aW9ucyB0byBpbXBvcnQgb3VywqBgY2Nzc190d2VldHMuY3N2YMKgZmlsZSBzYXZlZCBpbiBvdXIgZGF0YSBmb2xkZXI6CgpgYGB7cn0KY2Nzc190d2VldHMgPC0gcmVhZF9jc3YoaGVyZSgidW5pdC0zIiwgImRhdGEiLCAiY2Nzcy10d2VldHMuY3N2IiksIAogICAgICAgICAgY29sX3R5cGVzID0gY29scyhhdXRob3JfaWQgPSBjb2xfY2hhcmFjdGVyKCksIAogICAgICAgICAgICAgICAgICAgICAgICAgICBpZCA9IGNvbF9jaGFyYWN0ZXIoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udmVyc2F0aW9uX2lkID0gY29sX2NoYXJhY3RlcigpLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5fcmVwbHlfdG9fdXNlcl9pZCA9IGNvbF9jaGFyYWN0ZXIoKQogICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICApCmBgYAoKTm90ZSB0aGUgYWRkaXRpb24gb2YgdGhlIGBjb2xfdHlwZXMgPWAgYXJndW1lbnQgZm9yIGNoYW5naW5nIHNvbWUgb2YgdGhlIGNvbHVtbiB0eXBlcyB0byBjaGFyYWN0ZXIgc3RyaW5ncyBiZWNhdXNlIHRoZSBudW1iZXJzIGZvciB0aG9zZSBwYXJ0aWN1bGFyIGNvbHVtbnMgYWN0dWFsbHkgaW5kaWNhdGUgaWRlbnRpZmllcnMgZm9yIGF1dGhvcnMgYW5kIHR3ZWV0czoKCi0gICBgYXV0aG9yX2lkYCA9IHRoZSBhdXRob3Igb2YgdGhlIHR3ZWV0CgotICAgYGlkYCA9IHRoZSB1bmlxdWUgaWQgZm9yIGVhY2ggdHdlZXQKCi0gICBgY29udmVyYXN0aW9uX2lkYCA9IHRoZSB1bmlxdWUgaWQgZm9yIGVhY2ggW2NvbnZlcnNhdGlvbiB0aHJlYWRdKGh0dHBzOi8vZGV2ZWxvcGVyLnR3aXR0ZXIuY29tL2VuL2RvY3MvdHdpdHRlci1hcGkvY29udmVyc2F0aW9uLWlkKQoKLSAgIGBpbl9yZXBseV90b191c2VyX2lkYCA9IHRoZSBhdXRob3Igb2YgdGhlIHR3ZWV0IGJlaW5nIHJlcGxpZWQgdG8KCiMjIyMgW1lvdXIgVHVybl17c3R5bGU9ImNvbG9yOiBncmVlbjsifcKg4qS1IHtzdHlsZT0iZm9udC1zdHlsZTogbm9ybWFsOyBmb250LXZhcmlhbnQtY2Fwczogbm9ybWFsOyBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyBvcnBoYW5zOiBhdXRvOyB0ZXh0LWFsaWduOiBzdGFydDsgdGV4dC1pbmRlbnQ6IDBweDsgdGV4dC10cmFuc2Zvcm06IG5vbmU7IHdoaXRlLXNwYWNlOiBub3JtYWw7IHdpZG93czogYXV0bzsgd29yZC1zcGFjaW5nOiAwcHg7IC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgyNiwgMjYsIDI2LCAwLjMpOyAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IGF1dG87IC13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6IDBweDsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyBjYXJldC1jb2xvcjogcmdiKDAsIDAsIDApOyBjb2xvcjogcmdiKDAsIDAsIDApOyJ9CgpVc2UgdGhlIGZvbGxvd2luZyBjb2RlIGNodW5rIHRvIGltcG9ydCB0aGUgTkdTUyB0d2VldHMgbG9jYXRlZCBpbiB0aGUgc2FtZSBkYXRhIGZvbGRlciBhcyBvdXIgY29tbW9uIGNvcmUgdHdlZXRzLiBCeSBkZWZhdWx0LCBSIHdpbGwgdHJlYXQgbnVtZXJpY2FsIElEcyBpbiBvdXIgZGF0YXNldCBhcyBudW1lcmljIHZhbHVlcyBidXQgd2Ugd2lsbCBuZWVkIHRvIGNvbnZlcnQgdGhlc2UgdG8gY2hhcmFjdGVycyBsaWtlIGRlbW9uc3RyYXRlZCBhYm92ZSBmb3IgdGhlIHB1cnBvc2Ugb2YgYW5hbHlzaXM6CgpgYGB7cn0Kbmdzc190d2VldHMgPC0gcmVhZF9jc3YoaGVyZSgidW5pdC0zIiwgImRhdGEiLCAibmdzcy10d2VldHMuY3N2IiksIAogICAgICAgICAgY29sX3R5cGVzID0gY29scyhhdXRob3JfaWQgPSBjb2xfY2hhcmFjdGVyKCksIAogICAgICAgICAgICAgICAgICAgICAgICAgICBpZCA9IGNvbF9jaGFyYWN0ZXIoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udmVyc2F0aW9uX2lkID0gY29sX2NoYXJhY3RlcigpLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5fcmVwbHlfdG9fdXNlcl9pZCA9IGNvbF9jaGFyYWN0ZXIoKQogICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICApCmBgYAoKSW1wb3J0aW5nIGRhdGEgYW5kIGRlYWxpbmcgd2l0aCBkYXRhIHR5cGVzIGNhbiBiZSBhIGJpdCB0cmlja3ksIGVzcGVjaWFsbHkgZm9yIGJlZ2lubmVycy4gUmVjYWxsIGZyb20gcHJldmlvdXMgY2FzZSBzdHVkaWVzIHRoYXQgUlN0dWRpbyBoYXMgYW4gIkltcG9ydCBEYXRhc2V0IiBmZWF0dXJlIGluIHRoZSBFbnZpcm9ubWVudCBQYW5lIHRoYXQgY2FuIGhlbHAgeW91IHVzZSB0aGUge3JlYWRyfSBwYWNrYWdlIGFuZCBhc3NvY2lhdGVkIGZ1bmN0aW9ucyB0byBncmVhdGx5IGZhY2lsaXRhdGUgdGhpcyBwcm9jZXNzLiBJZiB5b3UgZ2V0IHN0dWNrLCB5b3UgY2FuIGNvcHkgdGhlIGNvZGUgZ2VuZXJhdGVkIGluIHRoZSBsb3dlciByaWdodCBoYW5kIGNvcm5lciBvZiB0aGUgSW1wb3J0IERhdGFzZXQgd2luZG93LgoKIVtdKGltYWdlcy9pbXBvcnQtZGF0YS5wbmcpe3dpZHRoPSI4MCUifQoKTm93IHVzZSB0aGUgZm9sbG93aW5nIGNvZGUgY2h1bmsgdG8gaW5zcGVjdCB0aGUgYGhlYWQoKWAgb2YgZWFjaCBkYXRhIGZyYW1lIGFuZCBhbnN3ZXIgdGhlIHF1ZXN0aW9ucyB0aGF0IGZvbGxvdzoKCmBgYHtyfQpoZWFkKG5nc3NfdHdlZXRzKQpoZWFkKGNjc3NfdHdlZXRzKQpgYGAKCldvdywgc28gbXVjaCBmb3IgYSBmYW1pbHkgZnJpZW5kbHkgY2FzZSBzdHVkeSEgQmFzZWQgb24gdGhpcyB2ZXJ5IGxpbWl0ZWQgc2FtcGxlLCB3aGljaCBzZXQgb2Ygc3RhbmRhcmRzIGRvIHlvdSB0aGluayBUd2l0dGVyIHVzZXJzIGFyZSBtb3JlIG5lZ2F0aXZlIGFib3V0PwoKLSAgIENTU1MKCkxldCdzIHRha2UgYSBzbGlnaHRseSBsYXJnZXIgc2FtcGxlIG9mIHRoZSBDQ1NTIHR3ZWV0czoKCmBgYHtyfQpjY3NzX3R3ZWV0cyAlPiUgCiAgc2FtcGxlX24oMjApICU+JQogIHJlbG9jYXRlKHRleHQpCiAgICAgICAgICAgCmBgYAoKIyMjIyBbWW91ciBUdXJuXXtzdHlsZT0iY29sb3I6IGdyZWVuOyJ9IOKktQoKVXNlIHRoZSBjb2RlIGNodW5rIGJlbG93IHRvIHRha2UgYSBzYW1wbGUgb2YgdGhlIE5HU1MgdHdlZXRzLiBUcnkgdG8gZG8gaXQgd2l0aG91dCBsb29raW5nIGF0IHRoZSBjb2RlIGFib3ZlIGZpcnN0OgoKYGBge3J9Cm5nc3NfdHdlZXRzICU+JSAKICBzYW1wbGVfbigyMCkgJT4lCiAgcmVsb2NhdGUodGV4dCkKYGBgCgoxLiAgU3RpbGwgb2YgdGhlIHNhbWUgb3Bpbmlvbj8KCiAgICAtICAgWWVzLCB0aGVzZSBhcHBlYXIgbXVjaCBsZXNzIG5lZ2F0aXZlLgoKMi4gIFdoYXQgZWxzZSB5b3Ugbm90aWNlIGFib3V0IG91ciBkYXRhIHNldHM/IFJlY29yZCBhIGZldyBvYnNlcnZhdGlvbnMgdGhhdCB5b3UgdGhpbmsgYXJlIHJlbGV2YW50IHRvIG91ciBhbmFseXNpcyBvciBtaWdodCBiZSB1c2VmdWwgZm9yIGZ1dHVyZSBhbmFseXNlcy4KCiAgICAtICAgCgozLiAgV2hhdCBxdWVzdGlvbnMgZG8geW91IGhhdmUgYWJvdXQgdGhlc2UgZGF0YSBzZXRzPyBXaGF0IGFyZSB5b3Ugc3RpbGwgY3VyaW91cyBhYm91dD8KCiAgICAtICAgCgojIyMgMmIuIFJlc3RydWN0dXJlIERhdGEKCiMjIyMgU3Vic2V0IFR3ZWV0cwoKQXMgeW91IG1heSBoYXZlIG5vdGljZWQsIHdlIGhhdmUgbW9yZSBkYXRhIHRoYW4gd2UgbmVlZCBmb3Igb3VyIGFuYWx5c2lzIGFuZCBzaG91bGQgcHJvYmFibHkgcGFyZSBpdCBkb3duIHRvIGp1c3Qgd2hhdCB3ZSdsbCB1c2UuCgpMZXQncyBzdGFydCB3aXRoIHRoZSBDQ1NTIHR3ZWV0cyBmaXJzdC4gQW5kIHNpbmNlIHRoaXMgaXMgYSBmYW1pbHkgZnJpZW5kbHkgY2FzZSBzdHVkeSwgbGV0J3MgdXNlIHRoZSBgZmlsdGVyKClgIGZ1bmN0aW9uIGludHJvZHVjZWQgaW4gcHJldmlvdXMgbGFicyB0byBmaWx0ZXIgb3V0IHJvd3MgY29udGFpbmluZyAicG9zc2libHkgc2Vuc2l0aXZlIiBsYW5ndWFnZToKCmBgYHtyLCBldmFsPVRSVUV9CmNjc3NfdHdlZXRzXzEgPC0gY2Nzc190d2VldHMgJT4lIAogIGZpbHRlcihwb3NzaWJseV9zZW5zaXRpdmUgPT0gIkZBTFNFIikKYGBgCgpOb3cgbGV0J3MgdXNlIHRoZSBgc2VsZWN0KClgIGZ1bmN0aW9uIHRvIHNlbGVjdCB0aGUgZm9sbG93aW5nIGNvbHVtbnMgZnJvbSBvdXIgbmV3IGBzc190d2VldHNfY2xlYW5gIGRhdGEgZnJhbWU6CgoxLiAgYHRleHRgIGNvbnRhaW5pbmcgdGhlIHR3ZWV0IHdoaWNoIGlzIG91ciBwcmltYXJ5IGRhdGEgc291cmNlIG9mIGludGVyZXN0CjIuICBgYXV0aG9yX2lkYCBvZiB0aGUgdXNlciB3aG8gY3JlYXRlZCB0aGUgdHdlZXQKMy4gIGBjcmVhdGVkX2F0YCB0aW1lc3RhbXAgZm9yIGV4YW1pbmluZyBjaGFuZ2VzIGluIHNlbnRpbWVudCBvdmVyIHRpbWUKNC4gIGBjb252ZXJzYXRpb25faWRgIGZvciBleGFtaW5pbmcgc2VudGltZW50IGJ5IGNvbnZlcnNhdGlvbnMKNS4gIGBpZGAgZm9yIHRoZSB1bmlxdWUgcmVmZXJlbmNlIGlkIGZvciBlYWNoIHR3ZWV0IGFuZCB1c2VmdWwgZm9yIGNvdW50cwoKYGBge3Igc2VsZWN0LXZhcmlhYmxlcywgZXZhbD1UUlVFfQpjY3NzX3R3ZWV0c18yIDwtIGNjc3NfdHdlZXRzXzEgJT4lIAogIHNlbGVjdCh0ZXh0LAogICAgICAgICBhdXRob3JfaWQsCiAgICAgICAgIGNyZWF0ZWRfYXQsIAogICAgICAgICBjb252ZXJzYXRpb25faWQsCiAgICAgICAgIGlkKQpgYGAKCiMjIyMgW1lvdXIgVHVybl17c3R5bGU9ImNvbG9yOiBncmVlbjsifcKg4qS1IHtzdHlsZT0iZm9udC1zdHlsZTogbm9ybWFsOyBmb250LXZhcmlhbnQtY2Fwczogbm9ybWFsOyBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyBvcnBoYW5zOiBhdXRvOyB0ZXh0LWFsaWduOiBzdGFydDsgdGV4dC1pbmRlbnQ6IDBweDsgdGV4dC10cmFuc2Zvcm06IG5vbmU7IHdoaXRlLXNwYWNlOiBub3JtYWw7IHdpZG93czogYXV0bzsgd29yZC1zcGFjaW5nOiAwcHg7IC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgyNiwgMjYsIDI2LCAwLjMpOyAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IGF1dG87IC13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6IDBweDsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyBjYXJldC1jb2xvcjogcmdiKDAsIDAsIDApOyBjb2xvcjogcmdiKDAsIDAsIDApOyJ9CgoqKk5vdGU6KiogVGhlIGBzZWxlY3QoKWAgZnVuY3Rpb24gd2lsbCBhbHNvIHJlb3JkZXIgeW91ciBjb2x1bW5zIGJhc2VkIG9uIHRoZSBvcmRlciBpbiB3aGljaCB5b3UgbGlzdCB0aGVtLgoKVXNlIHRoZSBjb2RlIGNodW5rIGJlbG93IHRvIHJlb3JkZXIgdGhlIGNvbHVtbnMgdG8geW91ciBsaWtpbmcgYW5kIGFzc2lnbiB0byBgY2Nzc190d2VldHNfM2A6CgpgYGB7cn0KY2Nzc190d2VldHNfMyA8LSBjY3NzX3R3ZWV0c18xICU+JSAKICBzZWxlY3QoaWQsCiAgICAgICAgIHRleHQsCiAgICAgICAgIGF1dGhvcl9pZCwKICAgICAgICAgY3JlYXRlZF9hdCwgCiAgICAgICAgIGNvbnZlcnNhdGlvbl9pZCkKYGBgCgojIyMjIEFkZCAmIFJlbG9jYXRlIENvbHVtbnMKCkZpbmFsbHksIHNpbmNlIHdlIGFyZSBpbnRlcmVzdGVkIGluIGNvbXBhcmluZyB0aGUgc2VudGltZW50IG9mIE5HU1MgdHdlZXRzIHdpdGggQ1NTUyB0d2VldHMsIGl0IHdvdWxkIGJlIGhlbHBmdWwgaWYgd2UgaGFkIGEgY29sdW1uIHRvIHF1aWNrbHkgaWRlbnRpZnkgdGhlIHNldCBvZiBzdGF0ZSBzdGFuZGFyZHMgd2l0aCB3aGljaCBlYWNoIHR3ZWV0IGlzIGFzc29jaWF0ZWQuCgpXZSdsbCB1c2UgdGhlIGBtdXRhdGUoKWAgZnVuY3Rpb24gdG8gY3JlYXRlIGEgbmV3IHZhcmlhYmxlIGNhbGxlZCBgc3RhbmRhcmRzYCB0byBsYWJlbCBlYWNoIHR3ZWV0cyBhcyAibmdzcyI6CgpgYGB7cn0KY2Nzc190d2VldHNfNCA8LSBtdXRhdGUoY2Nzc190d2VldHNfMiwgc3RhbmRhcmRzID0gImNjc3MiKQoKY29sbmFtZXMoY2Nzc190d2VldHNfNCkKYGBgCgpBbmQganVzdCBiZWNhdXNlIGl0IGJvdGhlcnMgbWUsIEknbSBnb2luZyB0byB1c2UgdGhlIGByZWxvY2F0ZSgpYCBmdW5jdGlvbiB0byBtb3ZlIHRoZSBgc3RhbmRhcmRzYCBjb2x1bW4gdG8gdGhlIGZpcnN0IHBvc2l0aW9uIHNvIEkgY2FuIHF1aWNrbHkgc2VlIHdoaWNoIHN0YW5kYXJkcyB0aGUgdHdlZXQgaXMgZnJvbToKCmBgYHtyfQpjY3NzX3R3ZWV0c181IDwtIHJlbG9jYXRlKGNjc3NfdHdlZXRzXzQsIHN0YW5kYXJkcykKCmNvbG5hbWVzKGNjc3NfdHdlZXRzXzUpCmBgYAoKQWdhaW4sIHdlIGNvdWxkIGFsc28gaGF2ZSB1c2VkIHRoZSBgc2VsZWN0KClgIGZ1bmN0aW9uIHRvIHJlb3JkZXIgY29sdW1ucyBsaWtlIHNvOgoKYGBge3J9CmNjc3NfdHdlZXRzXzUgPC0gY2Nzc190d2VldHNfNCAlPiUgCiAgc2VsZWN0KHN0YW5kYXJkcywKICAgICAgICAgdGV4dCwKICAgICAgICAgYXV0aG9yX2lkLAogICAgICAgICBjcmVhdGVkX2F0LCAKICAgICAgICAgY29udmVyc2F0aW9uX2lkLAogICAgICAgICBpZCkKCmNvbG5hbWVzKGNjc3NfdHdlZXRzXzUpCmBgYAoKQmVmb3JlIG1vdmluZyBvbiB0byB0aGUgQ0NTUyBzdGFuZGFyZHMsIGxldCdzIHVzZSB0aGUgYCU+JWAgb3BlcmF0b3IgYW5kIHJld3JpdGUgdGhlIGNvZGUgZnJvbSBvdXIgd3JhbmdsaW5nIHNvIHRoZXJlIGlzIGxlc3MgcmVkdW5kYW5jeSBhbmQgaXQgaXMgZWFzaWVyIHRvIHJlYWQ6CgpgYGB7cn0KIyBTZWFyY2ggVHdlZXRzCmNjc3NfdHdlZXRzX2NsZWFuIDwtIGNjc3NfdHdlZXRzICU+JQogIGZpbHRlcihwb3NzaWJseV9zZW5zaXRpdmUgPT0gIkZBTFNFIikgJT4lCiAgc2VsZWN0KHRleHQsIGF1dGhvcl9pZCwgY3JlYXRlZF9hdCwgY29udmVyc2F0aW9uX2lkLCBpZCkgJT4lCiAgbXV0YXRlKHN0YW5kYXJkcyA9ICJjY3NzIikgJT4lCiAgcmVsb2NhdGUoc3RhbmRhcmRzKQoKaGVhZChjY3NzX3R3ZWV0c19jbGVhbikKYGBgCgojIyMjIFtZb3VyIFR1cm5de3N0eWxlPSJjb2xvcjogZ3JlZW47In0g4qS1CgpSZWNhbGwgZnJvbSBzZWN0aW9uIFsxYi4gRGVmaW5lIFF1ZXN0aW9uc10gdGhhdCB3ZSBhcmUgaW50ZXJlc3RlZCBpbiBjb21wYXJpbmcgd29yZCB1c2FnZSBhbmQgcHVibGljIHNlbnRpbWVudCBhcm91bmQgYm90aCB0aGUgQ29tbW9uIENvcmUgYW5kIE5leHQgR2VuIFNjaWVuY2UgU3RhbmRhcmRzLgoKQ3JlYXRlIGFuIG5ldyBgbmdzc190d2VldHNfY2xlYW5gIGRhdGEgZnJhbWUgY29uc2lzdGluZyBvZiB0aGUgTmV4dCBHZW5lcmF0aW9uIFNjaWVuY2UgU3RhbmRhcmRzIHR3ZWV0cyB3ZSBpbXBvcnRlZCBieSB1c2luZyB0aGUgY29kZSBhYm92ZSBhcyBhIGd1aWRlLgoKYGBge3J9Cm5nc3NfdHdlZXRzX2NsZWFuIDwtIG5nc3NfdHdlZXRzICU+JQogIGZpbHRlcihwb3NzaWJseV9zZW5zaXRpdmUgPT0gIkZBTFNFIikgJT4lCiAgc2VsZWN0KHRleHQsIGF1dGhvcl9pZCwgY3JlYXRlZF9hdCwgY29udmVyc2F0aW9uX2lkLCBpZCkgJT4lCiAgbXV0YXRlKHN0YW5kYXJkcyA9ICJuZ3NzIikgJT4lCiAgcmVsb2NhdGUoc3RhbmRhcmRzKQoKaGVhZChuZ3NzX3R3ZWV0c19jbGVhbikKYGBgCgojIyMjIE1lcmdlIERhdGEgRnJhbWVzCgpGaW5hbGx5LCBsZXQncyBjb21iaW5lIG91ciBDQ1NTIGFuZCBOR1NTIHR3ZWV0cyBpbnRvIGEgc2luZ2xlIGRhdGEgZnJhbWUgYnkgdXNpbmcgdGhlIGB1bmlvbigpYCBmdW5jdGlvbiBmcm9tIGBkcGx5cmAgYW5kIHNpbXBseSBzdXBwbHlpbmcgdGhlIGRhdGEgZnJhbWVzIHRoYXQgeW91IHdhbnQgdG8gY29tYmluZSBhcyBhcmd1bWVudHM6CgpgYGB7cn0Kc3NfdHdlZXRzIDwtIHVuaW9uKGNjc3NfdHdlZXRzX2NsZWFuLAogICAgICAgICAgICAgICAgICAgbmdzc190d2VldHNfY2xlYW4pCgpzc190d2VldHMKYGBgCgpOb3RlIHRoYXQgd2hlbiBjcmVhdGluZyBhICJ1bmlvbiIgbGlrZSB0aGlzIChpLmUuIHN0YWNraW5nIG9uZSBkYXRhIGZyYW1lIG9uIHRvcCBvZiBhbm90aGVyKSwgKip5b3Ugc2hvdWxkIGhhdmUgdGhlIHNhbWUgbnVtYmVyIG9mIGNvbHVtbnMgaW4gZWFjaCBkYXRhIGZyYW1lIGFuZCB0aGV5IHNob3VsZCBiZSBpbiB0aGUgZXhhY3Qgc2FtZSBvcmRlcioqLgoKQWx0ZXJuYXRpdmVseSwgd2UgY291bGQgaGF2ZSB1c2VkIHRoZSBgYmluZF9yb3dzKClgIGZ1bmN0aW9uIGZyb20ge2RwbHlyfSBhcyB3ZWxsOgoKYGBge3J9CnNzX3R3ZWV0cyA8LSBiaW5kX3Jvd3MoY2Nzc190d2VldHNfY2xlYW4sCiAgICAgICAgICAgICAgICAgICAgICAgbmdzc190d2VldHNfY2xlYW4pCgpzc190d2VldHMKYGBgCgpUaGUgZGlzdGluY3Rpb24gYmV0d2VlbiB0aGVzZSB0d28gZnVuY3Rpb25zIGlzIHRoYXQgdW5pb24gYnkgZGVmYXVsdCByZW1vdmVzIGFueSBkdXBsaWNhdGUgcm93cyB0aGF0IG1pZ2h0IGhhdmUgc2hvd24gdXAgaW4gb3VyIHF1ZXJpZXMuCgpIb3dldmVyLCBzaW5jZSBib3RoIGZ1bmN0aW9ucyByZXR1cm5lZCB0aGUgc2FtZSBudW1iZXIgb2Ygcm93cywgaXQncyBjbGVhciB3ZSBkbyBub3QgaGF2ZSBhbnkgZHVwbGljYXRlcy4gSWYgd2Ugd2FudGVkIHRvIHZlcmlmeSwge2RwbHlyfSBhbHNvIGhhcyBhbiBpbnRlcnNlY3QgZnVuY3Rpb24gdG8gbWVyZ2UgdGhlIHR3byBkYXRhIGZyYW1lcywgYnV0IG9ubHkgd2hlcmUgdGhleSBgaW50ZXJzZWN0KClgLCBvciB3aGVyZSB0aGV5IGhhdmUgZHVwbGljYXRlIHJvd3MuCgpgYGB7cn0Kc3NfdHdlZXRzX2R1cGxpY2F0ZSA8LSBpbnRlcnNlY3QoY2Nzc190d2VldHNfY2xlYW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5nc3NfdHdlZXRzX2NsZWFuKQpgYGAKCiMjIyMgW1lvdXIgVHVybl17c3R5bGU9ImNvbG9yOiBncmVlbjsifSDipLUKCkZpbmFsbHksIGxldCdzIHRha2UgYSBxdWljayBsb29rIGF0IGJvdGggdGhlIGBoZWFkKClgIGFuZCB0aGUgYHRhaWwoKWAgb2YgdGhpcyBuZXcgYHNzX3R3ZWV0c2AgZGF0YSBmcmFtZSB0byBtYWtlIHN1cmUgaXQgY29udGFpbnMgYm90aCAibmdzcyIgYW5kICJjY3NzIiBzdGFuZGFyZHM6CgpgYGB7cn0KaGVhZChzc190d2VldHMpCnRhaWwoc3NfdHdlZXRzKQpgYGAKCiMjIyAyYy4gVGlkeSBUZXh0CgpUZXh0IGRhdGEgYnkgaXQncyB2ZXJ5IG5hdHVyZSBpcyBFU1BFQ0lBTExZIHVudGlkeSBhbmQgaXMgc29tZXRpbWVzIHJlZmVycmVkIHRvIGFzICJ1bnN0cnVjdHVyZWQiIGRhdGEuIEluIHRoaXMgc2VjdGlvbiB3ZSBsZWFybiBzb21lIHZlcnkgdXNlZnVsIGZ1bmN0aW9ucyBmcm9tIHRoZSB7dGlkeXRleHR9IHBhY2thZ2UgdG8gY29udmVydCB0ZXh0IHRvIGFuZCBmcm9tIHRpZHkgZm9ybWF0cy4gSGF2aW5nIG91ciB0ZXh0IGluIGEgdGlkeSBmb3JtYXQgd2lsbCBhbGxvdyB1cyB0byBzd2l0Y2ggc2VhbWxlc3NseSBiZXR3ZWVuIHRpZHkgdG9vbHMgYW5kIGV4aXN0aW5nIHRleHQgbWluaW5nIHBhY2thZ2VzLCB3aGlsZSBhbHNvIG1ha2luZyBpdCBlYXNpZXIgdG8gdmlzdWFsaXplIHRleHQgc3VtbWFyaWVzIGluIG90aGVyIGRhdGEgYW5hbHlzaXMgdG9vbHMgbGlrZSBUYWJsZWF1LgoKIyMjIyBUb2tlbml6ZSBUZXh0IHtkYXRhLWxpbms9IjJiLiBUaWR5IFRleHQifQoKSW4gQ2hhcHRlciAxIG9mIFRleHQgTWluaW5nIHdpdGggUiwgQHNpbGdlMjAxN3RleHQgZGVmaW5lIHRoZSB0aWR5IHRleHQgZm9ybWF0IGFzIGEgdGFibGUgd2l0aCBvbmUtdG9rZW4tcGVyLXJvdywgYW5kIGV4cGxhaW4gdGhhdDoKCj4gQSAqKnRva2VuKiogaXMgYSBtZWFuaW5nZnVsIHVuaXQgb2YgdGV4dCwgc3VjaCBhcyBhIHdvcmQsIHR3by13b3JkIHBocmFzZSAoYmlncmFtKSwgb3Igc2VudGVuY2UgdGhhdCB3ZSBhcmUgaW50ZXJlc3RlZCBpbiB1c2luZyBmb3IgYW5hbHlzaXMuIEFuZCB0b2tlbml6YXRpb24gaXMgdGhlIHByb2Nlc3Mgb2Ygc3BsaXR0aW5nIHRleHQgaW50byB0b2tlbnMuCgpUaGlzIG9uZS10b2tlbi1wZXItcm93IHN0cnVjdHVyZSBpcyBpbiBjb250cmFzdCB0byB0aGUgd2F5cyB0ZXh0IGlzIG9mdGVuIHN0b3JlZCBmb3IgdGV4dCBhbmFseXNpcywgcGVyaGFwcyBhcyBzdHJpbmdzIGluIGEgY29ycHVzIG9iamVjdCBvciBpbiBhIGRvY3VtZW50LXRlcm0gbWF0cml4LiBGb3IgdGlkeSB0ZXh0IG1pbmluZywgdGhlwqB0b2tlbiB0aGF0IGlzIHN0b3JlZCBpbiBlYWNoIHJvdyBpcyBtb3N0IG9mdGVuIGEgc2luZ2xlIHdvcmQsIGJ1dCBjYW4gYWxzbyBiZSBhbiBuLWdyYW0sIHNlbnRlbmNlLCBvciBwYXJhZ3JhcGguCgpGb3IgdGhpcyBwYXJ0IG9mIG91ciB3b3JrZmxvdywgb3VyIGdvYWwgaXMgdG8gdHJhbnNmb3JtIG91ciBgc3NfdHdlZXRzYCBkYXRhIGZyb20gdGhpczoKCmBgYHtyfQpoZWFkKHJlbG9jYXRlKHNzX3R3ZWV0cywgdGV4dCkpCmBgYAoKSW50byBhICJ0aWR5IHRleHQiIG9uZS10b2tlbi1wZXItcm93IGZvcm1hdCB0aGF0IGxvb2tzIGxpa2UgdGhpczoKCmBgYHtyfQp0aWR5X3R3ZWV0cyA8LSBzc190d2VldHMgJT4lIAogIHVubmVzdF90b2tlbnMob3V0cHV0ID0gd29yZCwgCiAgICAgICAgICAgICAgICBpbnB1dCA9IHRleHQpICU+JQogIHJlbG9jYXRlKHdvcmQpCgpoZWFkKHRpZHlfdHdlZXRzKQpgYGAKCklmIHlvdSB0YWtlIEVDSSA1ODg6IFRleHQgTWluaW5nIGluIEVkdWNhdGlvbiwgeW91J2xsIGxlYXJuIGFib3V0IG90aGVyIGRhdGEgc3RydWN0dXJlcyBmb3IgdGV4dCBhbmFseXNpcyBsaWtlIHRoZSBkb2N1bWVudC10ZXJtIG1hdHJpeCBhbmQgY29ycHVzIG9iamVjdHMuIEZvciBub3csIGhvd2V2ZXIsIHdvcmtpbmcgd2l0aCB0aGUgZmFtaWxpYXIgdGlkeSBkYXRhIGZyYW1lIGFsbG93cyB1cyB0byB0YWtlIGFkdmFudGFnZSBvZiBwb3B1bGFyIHBhY2thZ2VzIHRoYXQgdXNlIHRoZSBzaGFyZWQgdGlkeXZlcnNlIHN5bnRheCBhbmQgcHJpbmNpcGxlcyBmb3Igd3JhbmdsaW5nLCBleHBsb3JpbmcsIGFuZCBtb2RlbGluZyBkYXRhLgoKQXMgZGVtb25zdHJhdGVkIGFib3ZlLCB0aGUgYHRpZHl0ZXh0YCBwYWNrYWdlIHByb3ZpZGVzIHRoZSBpbmNyZWRpYmx5IHBvd2VyZnVsIGB1bm5lc3RfdG9rZW5zKClgIGZ1bmN0aW9uIHRvIHRva2VuaXplIHRleHQgKGluY2x1ZGluZyB0d2VldHMhKSBhbmQgY29udmVydCB0aGVtIHRvIGEgb25lLXRva2VuLXBlci1yb3cgZm9ybWF0LgoKTGV0J3MgdG9rZW5pemUgb3VyIHR3ZWV0cyBieSB1c2luZyB0aGlzIGZ1bmN0aW9uIHRvIHNwbGl0IGVhY2ggdHdlZXQgaW50byBhIHNpbmdsZSByb3cgdG8gbWFrZSBpdCBlYXNpZXIgdG8gYW5hbHl6ZSBhbmQgdGFrZSBhIGxvb2s6CgpgYGB7ciB1bm5lc3QtdG9rZW5zfQpzc190b2tlbnMgPC0gdW5uZXN0X3Rva2Vucyhzc190d2VldHMsIAogICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQgPSB3b3JkLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQgPSB0ZXh0KQoKaGVhZChyZWxvY2F0ZShzc190b2tlbnMsIHdvcmQpKQpgYGAKClRoZXJlIGlzIEEgTE9UIHRvIHVucGFjayB3aXRoIHRoaXMgZnVuY3Rpb246CgotICAgRmlyc3Qgbm90aWNlIHRoYXTCoGB1bm5lc3RfdG9rZW5zKClgIGV4cGVjdHMgYSBkYXRhIGZyYW1lIGFzIHRoZSBmaXJzdCBhcmd1bWVudCwgZm9sbG93ZWQgYnkgdHdvIGNvbHVtbiBuYW1lcy4KLSAgIFRoZSBuZXh0IGFyZ3VtZW50IGlzIGFuIG91dHB1dCBjb2x1bW4gbmFtZSB0aGF0IGRvZXNuJ3QgY3VycmVudGx5IGV4aXN0IGJ1dCB3aWxsIGJlIGNyZWF0ZWQgYXMgdGhlIHRleHQgaXMgInVubmVzdGVkIiBpbnRvIGl0LCBgd29yZGAgaW4gdGhpcyBjYXNlKS4KLSAgIFRoaXMgaXMgZm9sbG93ZWQgYnkgdGhlIGlucHV0IGNvbHVtbiB0aGF0IHRoZSB0ZXh0IGNvbWVzIGZyb20sIHdoaWNoIHdlIHVuY3JlYXRpdmVseSBuYW1lZCBgdGV4dGAuCi0gICBCeSBkZWZhdWx0LCBhIHRva2VuIGlzIGFuIGluZGl2aWR1YWwgd29yZCBvciB1bmlncmFtLgotICAgT3RoZXIgY29sdW1ucywgc3VjaCBhc8KgYGF1dGhvcl9pZGDCoGFuZMKgYGNyZWF0ZWRfYXRgLCBhcmUgcmV0YWluZWQuCi0gICBBbGwgcHVuY3R1YXRpb24gaGFzIGJlZW4gcmVtb3ZlZC4KLSAgIFRva2VucyBoYXZlIGJlZW4gY2hhbmdlZCB0byBsb3dlcmNhc2UsIHdoaWNoIG1ha2VzIHRoZW0gZWFzaWVyIHRvIGNvbXBhcmUgb3IgY29tYmluZSB3aXRoIG90aGVyIGRhdGFzZXRzICh1c2UgdGhlwqBgdG9fbG93ZXIgPSBGQUxTRWDCoGFyZ3VtZW50IHRvIHR1cm4gb2ZmIGlmIGRlc2lyZWQpLgoKKipOb3RlOioqIFNpbmNlIHt0aWR5dGV4dH0gZm9sbG93cyB0aWR5IGRhdGEgcHJpbmNpcGxlcywgd2UgYWxzbyBjb3VsZCBoYXZlIHVzZWQgdGhlIGAlPiVgIG9wZXJhdG9yIHRvIHBhc3Mgb3VyIGRhdGEgZnJhbWUgdG8gdGhlIGB1bm5lc3RfdG9rZW5zKClgIGZ1bmN0aW9uIGxpa2Ugc286CgpgYGB7cn0Kc3NfdG9rZW5zIDwtIHNzX3R3ZWV0cyAlPiUKICB1bm5lc3RfdG9rZW5zKG91dHB1dCA9IHdvcmQsIAogICAgICAgICAgICAgICAgaW5wdXQgPSB0ZXh0KQoKc3NfdG9rZW5zCmBgYAoKIyMjIyBbWW91ciBUdXJuXXtzdHlsZT0iY29sb3I6IGdyZWVuOyJ9wqDipLUge3N0eWxlPSJmb250LXN0eWxlOiBub3JtYWw7IGZvbnQtdmFyaWFudC1jYXBzOiBub3JtYWw7IGxldHRlci1zcGFjaW5nOiBub3JtYWw7IG9ycGhhbnM6IGF1dG87IHRleHQtYWxpZ246IHN0YXJ0OyB0ZXh0LWluZGVudDogMHB4OyB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgd2hpdGUtc3BhY2U6IG5vcm1hbDsgd2lkb3dzOiBhdXRvOyB3b3JkLXNwYWNpbmc6IDBweDsgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDI2LCAyNiwgMjYsIDAuMyk7IC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogYXV0bzsgLXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aDogMHB4OyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGNhcmV0LWNvbG9yOiByZ2IoMCwgMCwgMCk7IGNvbG9yOiByZ2IoMCwgMCwgMCk7In0KClRoZSBgdW5uZXN0X3Rva2VucygpYCBmdW5jdGlvbiBhbHNvIGhhcyBhIHNwZWNpYWxpemVkwqBg4oCcdHdlZXRz4oCdYMKgdG9rZW5pemVyIGluIHRoZSBgdG9rZW5zID1gIGFyZ3VtZW50IHRoYXQgaXMgdmVyeSB1c2VmdWwgZm9yIGRlYWxpbmcgd2l0aCBUd2l0dGVyIHRleHQuIEl0IHJldGFpbnMgaGFzaHRhZ3MgYW5kIG1lbnRpb25zIG9mIHVzZXJuYW1lcyB3aXRoIHRoZSBcQCBzeW1ib2wgYXMgaWxsdXN0cmF0ZWQgYnkgb3VyIFxAY2F0dHVyZDIgZnJpZW5kIHdobyBmZWF0dXJlZCBwcm9taW5lbnRseSBpbiBvdXIgdGhlIGZpcnN0IENDU1MgdHdlZXQuCgpSZXdyaXRlIHRoZSBjb2RlIGFib3ZlICgqKnlvdSBjYW4gY2hlY2sgYW5zd2VyIGJlbG93KiopIHRvIGluY2x1ZGUgdGhlIHRva2VuIGFyZ3VtZW50IHNldCB0byAidHdlZXRzIiwgYXNzaWduIHRvIGBzc190b2tlbnNfMWAsIGFuZCBhbnN3ZXIgdGhlIHF1ZXN0aW9ucyB0aGF0IGZvbGxvdzoKCmBgYHtyfQpzc190b2tlbnNfMSA8LSB1bm5lc3RfdG9rZW5zKHNzX3R3ZWV0cywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gd29yZCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQgPSB0ZXh0LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2tlbiA9ICJ0d2VldHMiKQoKaGVhZChzc190b2tlbnNfMSkKYGBgCgoxLiAgSG93IG1hbnkgb2JzZXJ2YXRpb25zIHdlcmUgb3VyIG9yaWdpbmFsIGBzc190d2VldHNgIGRhdGEgZnJhbWU/CgogICAgLSAgIAoKMi4gIEhvdyBtYW55IG9ic2VydmF0aW9ucyBhcmUgdGhlcmUgbm93PyBXaHkgdGhlIGRpZmZlcmVuY2U/CgogICAgLSAgIAoKQmVmb3JlIHdlIG1vdmUgYW55IGZ1cnRoZXIgbGV0J3MgdGFrZSBhIHF1aWNrIGxvb2sgYXQgdGhlIG1vc3QgY29tbW9uIHdvcmQgaW4gb3VyIHR3byBkYXRhc2V0cy4gVG8gZG8gc28sIHdlJ2xsIGludHJvZHVjZSB0aGUgZWFzeSB0byB1c2UgYGNvdW50KClgIGZ1bmN0aW9uIGZyb20gdGhlIHtkcGx5cn0gcGFja2FnZS4KCkxpa2UgbW9zdCBmdW5jdGlvbnMgd2UndmUgaW50cm9kdWNlZCwgdGhlIGZpcnN0IGFyZ3VtZW50IGBjb3VudCgpYCBleHBlY3RzIGlzIGEgZGF0YSBmcmFtZSB3aGljaCB3ZSBwcm92aWRlZCB3aXRoIHRoZSBgJT4lYCBvcGVyYXRvciwgZm9sbG93ZWQgYnV0IHRoZSBjb2x1bW4sIGluIG91ciBjYXNlIGB3b3JkYCwgd2hvc2UgdmFsdWVzIHdlIHdhbnQgdG8gY291bnQ6CgpgYGB7cn0Kc3NfdG9rZW5zXzEgJT4lCiAgY291bnQod29yZCwgc29ydCA9IFRSVUUpCgpgYGAKCldlbGwsIG1hbnkgb2YgdGhlc2UgdHdlZXRzIGFyZSBjbGVhcmx5IGFib3V0IHRoZSBDQ1NTIGFuZCBtYXRoIGF0IGxlYXN0LCBidXQgYmV5b25kIHRoYXQgaXQncyBhIGJpdCBoYXJkIHRvIHRlbGwgYmVjYXVzZSB0aGVyZSBhcmUgc28gbWFueSAic3RvcCB3b3JkcyIgbGlrZSAidGhlIiwgInRvIiwgImFuZCIsICJpbiIgdGhhdCBkb24ndCBjYXJyeSBtdWNoIG1lYW5pbmcgYnkgdGhlbXNlbHZlcy4KCiMjIyMgUmVtb3ZlIFN0b3AgV29yZHMKCk9mdGVuIGluIHRleHQgYW5hbHlzaXMsIHdlIHdpbGwgd2FudCB0byByZW1vdmUgdGhlc2Ugc3RvcCB3b3JkcyBpZiB0aGV5IGFyZSBub3QgdXNlZnVsIGZvciBhbiBhbmFseXNpcy4gVGhlwqBgc3RvcF93b3Jkc2DCoGRhdGFzZXQgaW4gdGhlIHt0aWR5dGV4dH0gcGFja2FnZSBjb250YWlucyBzdG9wIHdvcmRzIGZyb20gdGhyZWUgbGV4aWNvbnMuIFdlIGNhbiB1c2UgdGhlbSBhbGwgdG9nZXRoZXIsIGFzIHdlIGhhdmUgaGVyZSwgb3LCoGBmaWx0ZXIoKWDCoHRvIG9ubHkgdXNlIG9uZSBzZXQgb2Ygc3RvcCB3b3JkcyBpZiB0aGF0IGlzIG1vcmUgYXBwcm9wcmlhdGUgZm9yIGEgY2VydGFpbiBhbmFseXNpcy4KCkxldCdzIHRha2UgYSBjbG9zZXIgdGhlIGxleGljb25zIGFuZCBzdG9wIHdvcmRzIGluY2x1ZGVkIGluIGVhY2g6CgpgYGB7ciwgZXZhbD1GQUxTRX0KVmlldyhzdG9wX3dvcmRzKQpgYGAKCiMjIyMgVGhlIGBhbnRpX2pvaW5gIEZ1bmN0aW9uCgpJbiBvcmRlciB0byByZW1vdmUgdGhlc2Ugc3RvcCB3b3Jkcywgd2Ugd2lsbCB1c2UgYSBmdW5jdGlvbiBjYWxsZWTCoGBhbnRpX2pvaW4oKWDCoHRoYXQgbG9va3MgZm9yIG1hdGNoaW5nIHZhbHVlcyBpbiBhIHNwZWNpZmljIGNvbHVtbiBmcm9tIHR3byBkYXRhc2V0cyBhbmQgcmV0dXJucyByb3dzIGZyb20gdGhlIG9yaWdpbmFsIGRhdGFzZXQgdGhhdCBoYXZlIG5vIG1hdGNoZXMgbGlrZSBzbzoKCiFbXShpbWcvYW50aS1qb2luLnBuZykKCkZvciBhIGdvb2Qgb3ZlcnZpZXcgb2YgdGhlIGRpZmZlcmVudMKgYGRwbHlyYMKgam9pbnMgc2VlIGhlcmU6wqA8aHR0cHM6Ly9tZWRpdW0uY29tL3RoZS1jb2RlaHViL2JlZ2lubmVycy1ndWlkZS10by11c2luZy1qb2lucy1pbi1yLTY4MmZjOWIxZjExOT4uCgpOb3cgbGV0J3MgcmVtb3ZlIHN0b3Agd29yZHMgdGhhdCBkb24ndCBoZWxwIHVzIGxlYXJuIG11Y2ggYWJvdXQgd2hhdCBwZW9wbGUgYXJlIHNheWluZyBhYm91dCB0aGUgc3RhdGUgc3RhbmRhcmRzLgoKYGBge3Igc3RvcC11bmlncmFtc30Kc3NfdG9rZW5zXzIgPC0gYW50aV9qb2luKHNzX3Rva2Vuc18xLAogICAgICAgICAgICAgICAgICAgICAgICAgc3RvcF93b3JkcywKICAgICAgICAgICAgICAgICAgICAgICAgIGJ5ID0gIndvcmQiKQoKaGVhZChzc190b2tlbnNfMikKYGBgCgpOb3RpY2UgdGhhdCB3ZSd2ZSBzcGVjaWZpZWQgdGhlIGBieSA9YCBhcmd1bWVudCB0byBsb29rIGZvciBtYXRjaGluZyB3b3JkcyBpbiB0aGUgYHdvcmRgIGNvbHVtbiBmb3IgYm90aCBkYXRhIHNldHMgYW5kIHJlbW92ZSBhbnkgcm93cyBmcm9tIHRoZSBgdHdlZXRfdG9rZW5zYCBkYXRhc2V0IHRoYXQgbWF0Y2ggdGhlIGBzdG9wX3dvcmRzYCBkYXRhc2V0LiBSZW1lbWJlciB3aGVuIHdlIGZpcnN0IHRva2VuaXplZCBvdXIgZGF0YXNldCBJIGNvbnZlbmllbnRseSBjaG9zZcKgYG91dHB1dCA9IHdvcmRgwqBhcyB0aGUgY29sdW1uIG5hbWUgYmVjYXVzZSBpdCBtYXRjaGVzIHRoZSBjb2x1bW4gbmFtZcKgYHdvcmRgwqBpbiB0aGXCoGBzdG9wX3dvcmRzYMKgZGF0YXNldCBjb250YWluZWQgaW4gdGhlIGB0aWR5dGV4dGAgcGFja2FnZS4gVGhpcyBtYWtlcyBvdXIgY2FsbCB0b8KgYGFudGlfam9pbigpYHNpbXBsZXIgYmVjYXVzZcKgYGFudGlfam9pbigpYMKga25vd3MgdG8gbG9vayBmb3IgdGhlIGNvbHVtbiBuYW1lZMKgYHdvcmRgwqBpbiBlYWNoIGRhdGFzZXQuIEhvd2V2ZXIgdGhpcyB3YXNuJ3QgcmVhbGx5IG5lY2Vzc2FyeSBzaW5jZSBgd29yZGAgaXMgdGhlIG9ubHkgbWF0Y2hpbmcgY29sdW1uIG5hbWUgaW4gYm90aCBkYXRhc2V0cyBhbmQgaXQgd291bGQgaGF2ZSBtYXRjaGVkIHRob3NlIGNvbHVtbnMgYnkgZGVmYXVsdC4KCiMjIyMgW1lvdXIgVHVybl17c3R5bGU9ImNvbG9yOiBncmVlbjsifcKg4qS1IHtzdHlsZT0iZm9udC1zdHlsZTogbm9ybWFsOyBmb250LXZhcmlhbnQtY2Fwczogbm9ybWFsOyBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyBvcnBoYW5zOiBhdXRvOyB0ZXh0LWFsaWduOiBzdGFydDsgdGV4dC1pbmRlbnQ6IDBweDsgdGV4dC10cmFuc2Zvcm06IG5vbmU7IHdoaXRlLXNwYWNlOiBub3JtYWw7IHdpZG93czogYXV0bzsgd29yZC1zcGFjaW5nOiAwcHg7IC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgyNiwgMjYsIDI2LCAwLjMpOyAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IGF1dG87IC13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6IDBweDsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyBjYXJldC1jb2xvcjogcmdiKDAsIDAsIDApOyBjb2xvcjogcmdiKDAsIDAsIDApOyJ9CgpVc2UgdGhlIGNvZGUgY2h1bmsgYmVsb3cgdG8gdGFrZSBhIHF1aWNrIGNvdW50IG9mIHRoZSBtb3N0IGNvbW1vbiB0b2tlbnMgaW4gb3VyIGBzc190d2VldHNfMmAgZGF0YSBmcmFtZSB0byBzZWUgaWYgdGhlIHJlc3VsdHMgYXJlIGEgbGl0dGxlIG1vcmUgbWVhbmluZ2Z1bCwgdGhlbiBhbnN3ZXIgdGhlIHF1ZXN0aW9ucyB0aGF0IGZvbGxvdy4KCmBgYHtyfQpzc190b2tlbnNfMiAlPiUKICBjb3VudCh3b3JkLCBzb3J0ID0gVFJVRSkKYGBgCgojIyMjIFtZb3VyIFR1cm5de3N0eWxlPSJjb2xvcjogZ3JlZW47In3CoOKktSB7c3R5bGU9ImZvbnQtc3R5bGU6IG5vcm1hbDsgZm9udC12YXJpYW50LWNhcHM6IG5vcm1hbDsgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgb3JwaGFuczogYXV0bzsgdGV4dC1hbGlnbjogc3RhcnQ7IHRleHQtaW5kZW50OiAwcHg7IHRleHQtdHJhbnNmb3JtOiBub25lOyB3aGl0ZS1zcGFjZTogbm9ybWFsOyB3aWRvd3M6IGF1dG87IHdvcmQtc3BhY2luZzogMHB4OyAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMjYsIDI2LCAyNiwgMC4zKTsgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiBhdXRvOyAtd2Via2l0LXRleHQtc3Ryb2tlLXdpZHRoOiAwcHg7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgY2FyZXQtY29sb3I6IHJnYigwLCAwLCAwKTsgY29sb3I6IHJnYigwLCAwLCAwKTsifQoKMS4gIEhvdyBtYW55IHVuaXF1ZSB0b2tlbnMgYXJlIGluIG91ciBkYXRhIHRpZGllZCB0ZXh0PwoKICAgIC0gICA3Myw1OTYKCjIuICBIb3cgbWFueSB0aW1lcyBkb2VzIHRoZSB3b3JkICJtYXRoIiBvY2N1ciBpbiBvdXIgc2V0IG9mIHR3ZWV0cz8KCiAgICAtICAgMTEsNzg4CgojIyMjIEN1c3RvbSBTdG9wIFdvcmRzCgpOb3RpY2UgdGhhdCB0aGUgbm9uc2Vuc2Ugd29yZCAiYW1wIiBpcyBhbW9uZyBvdXIgaGlnaCBmcmVxdWVuY3kgd29yZHMgYXMgd2VsbCBhcyBzb21lLiBXZSBjYW4gY3JlYXRlIG91ciBvd24gY3VzdG9tIHN0b3Agd29yZCBsaXN0IHRvIHRvIHdlZWQgb3V0IGFueSBhZGRpdGlvbmFsIHdvcmRzIHRoYXQgZG9uJ3QgY2FycnkgbXVjaCBtZWFuaW5nIGJ1dCBza2V3IG91ciBkYXRhIGJ5IGJlaW5nIHNvIHByb21pbmVudC4KCkxldCdzIGNyZWF0ZSBhIGN1c3RvbSBzdG9wIHdvcmQgbGlzdCBieSB1c2luZyB0aGUgc2ltcGxlIGBjKClgIGZ1bmN0aW9uIHRvIGNvbWJpbmUgb3VyIHdvcmRzLiBXZSBjYW4gdGhlIGFkZCBhIGZpbHRlciB0byBrZWVwIHJvd3Mgd2hlcmUgd29yZHMgaW4gb3VyIGB3b3JkYCBjb2x1bW4gZG8gTk9UIGAhYCBtYXRjaCB3b3JkcyBgJWluJWAgYG15X3N0b3B3b3Jkc2AgbGlzdDoKCmBgYHtyfQpteV9zdG9wd29yZHMgPC0gYygiYW1wIiwgIj0iLCAiKyIpCgpzc190b2tlbnNfMyA8LQogIHNzX3Rva2Vuc18yICU+JQogIGZpbHRlcighd29yZCAlaW4lIG15X3N0b3B3b3JkcykKYGBgCgpMZXQncyB0YWtlIGEgbG9vayBhdCBvdXIgdG9wIHdvcmRzIGFnYWluIGFuZCBzZWUgaWYgdGhhdCBkaWQgdGhlIHRyaWNrOgoKYGBge3J9CnNzX3Rva2Vuc18zICU+JQogIGNvdW50KHdvcmQsIHNvcnQgPSBUUlVFKQpgYGAKCk11Y2ggYmV0dGVyISBOb3RlIHRoYXQgd2UgY291bGQgZXh0ZW5kIHRoaXMgc3RvcCB3b3JkIGxpc3QgaW5kZWZpbml0ZWx5LiBGZWVsIGZyZWUgdG8gdXNlIHRoZSBjb2RlIGNodW5rIGJlbG93IHRvIHRyeSBhZGRpbmcgbW9yZSB3b3JkcyB0byBvdXIgc3RvcCBsaXN0LgoKQmVmb3JlIHdlIG1vdmUgYW55IGZ1cnRoZXIsIGxldCdzIHNhdmUgb3VyIHRpZGllZCB0d2VldHMgYXMgYSBuZXcgZGF0YSBmcmFtZSBmb3IgU2VjdGlvbiAzIGFuZCBhbHNvIHNhdmUgaXQgYXMgYSAuY3N2IGZpbGUgaW4gb3VyIGRhdGEgZm9sZGVyOgoKYGBge3J9CnNzX3RpZHlfdHdlZXRzIDwtIHNzX3Rva2Vuc18zCgp3cml0ZV9jc3Yoc3NfdG9rZW5zXzMsIGhlcmUoInVuaXQtMyIsICJkYXRhIiwgInNzX3RpZHlfdHdlZXRzLmNzdiIpKQpgYGAKCiMjIDMuIEVYUExPUkUKCkNhbGN1bGF0aW5nIHN1bW1hcnkgc3RhdGlzdGljcywgZGF0YSB2aXN1YWxpemF0aW9uLCBhbmQgZmVhdHVyZSBlbmdpbmVlcmluZyAodGhlIHByb2Nlc3Mgb2YgY3JlYXRpbmcgbmV3IHZhcmlhYmxlcyBmcm9tIGEgZGF0YXNldCkgYXJlIGEga2V5IHBhcnQgb2YgZXhwbG9yYXRvcnkgZGF0YSBhbmFseXNpcy4gRm9yIG91ciBmaXJzdCBsYWIsIHdlJ3JlIGdvaW5nIHRvIGtlZXAgdGhpbmdzIHN1cGVyIHNpbXBsZSBhbmQgZm9jdXMgb246CgphLiAgKipUb3AgVG9rZW5zLioqIFNpbmNlIG9uY2Ugb2Ygb3VyIGdvYWxzIGlzIHRvIGNvbXBhcmUgdHdlZXRzIGFib3V0IHRoZSBOR1NTIGFuZCBDU1NTIHN0YW5kYXJkcywgd2UnbGwgdGFrZSBhIGxvb2sgYXQgdGhlIHRvIDUwIHdvcmRzIHRoYXQgYXBwZWFyIGluIGVhY2guCgpiLiAgKipXb3JkIENsb3Vkcy4qKiBUbyBoZWxwIGlsbHVzdHJhdGUgdGhlIHJlbGF0aXZlIGZyZXF1ZW5jeSBlYWNoIG9mIHRoZXNlIHRvcCA1MCB3b3JkcyBvY2N1cnMsIHdlJ2xsIGludHJvZHVjZSB0aGUge3dvcmRjbG91ZHMyfSBwYWNrYWdlIGZvciBjcmVhdGluZyBpbnRlcmFjdGl2ZSB3b3JkIGNsb3VkcyB0aGF0IGNhbiBiZSBrbml0dGVkIHdpdGggeW91ciBIVE1MIGRvYy4KCiMjIyAzYS4gVG9wIFRva2VucwoKRmlyc3QsIGxldCdzIHRha2UgYWR2YW50YWdlIG9mIHRoZSB0aGUgYCU+JWAgb3BlcmF0b3IgY29tYmluZSBzb21lIG9mIHRoZSBmdW5jdGlvbnMgd2UndmUgdXNlZCBhYm92ZSB3aXRoIHRoZSBgdG9wX24oKWAgZnVuY3Rpb24gZnJvbSB0aGUge2RwbHlyfSBwYWNrYWdlLiBCeSBkZWZhdWx0LCB0aGlzIGZ1bmN0aW9uIGlzIGxvb2tpbmcgZm9yIGEgZGF0YSBmcmFtZSBhcyB0aGUgZmlyc3QgYXJndW1lbnQsIGFuZCB0aGVuIHRoZSBudW1iZXIgb2Ygcm93cyB0byByZXR1cm4uCgpMZXQncyB0YWtlIGEgbG9vayBhdCB0aGUgdG9wIHRva2VucyBhbW9uZyB0aGUgQ0NTUyB0d2VldHMgYnkgZmlsdGVyaW5nIG91ciBgc3RhbmRhcmRzYCBieSBDQ1NTLCBjb3VudGluZyB0aGUgbnVtYmVyIG9mIHRpbWVzIGVhY2ggYHdvcmRgIG9jY3VycywgYW5kIHRha2luZyB0aGUgbG9vayBhdCB0aGUgNTAgbW9zdCBjb21tb24gd29yZHM6CgpgYGB7cn0KY2Nzc190b3BfdG9rZW5zIDwtIHNzX3RpZHlfdHdlZXRzICU+JQogIGZpbHRlcihzdGFuZGFyZHMgPT0gImNjc3MiKSAlPiUKICBjb3VudCh3b3JkLCBzb3J0ID0gVFJVRSkgJT4lCiAgdG9wX24oNTApCgpjY3NzX3RvcF90b2tlbnMKYGBgCgpOb3Qgc3VycHJpc2luZ2x5LCBvdXIgc2VhcmNoIHRlcm1zIGFwcGVhciBpbiB0aGUgdG9wIDUwIGJ1dCB0aGUgd29yZCAibWF0aCIgYWxzbyBmZWF0dXJlcyBwcm9taW5lbnRseSBhbW9uZyBDQ1NTIHR3ZWV0cyEKCiMjIyBXb3JkIENsb3VkcwoKV29yZCBjbG91ZHMgYXJlIG11Y2ggbWFsaWduZWQgYW5kIHNvbWV0aW1lcyByZWZlcnJlZCB0byBhcyB0aGUgInBpZSBjaGFydHMgb2YgdGV4dCBhbmFseXNpcyIsIGJ1dCB0aGV5IGNhbiBiZSB1c2VmdWwgZm9yIGNvbW11bmljYXRpbmcgc2ltcGxlIHN1bW1hcmllcyBvZiBxdWFsaXRhdGl2ZSBkYXRhIGZvciBlZHVjYXRpb24gcHJhY3RpdGlvbmVycyBhbmQgYXJlIGludHVpdGl2ZSBmb3IgdGhlbSB0byBpbnRlcnByZXQuIEFsc28sIGZvciBiZXR0ZXIgb3Igd29yc2UsIHRoZXNlIGFyZSBub3cgaW5jbHVkZWQgYXMgYSBkZWZhdWx0IHZpc3VhbGl6YXRpb24gZm9yIG9wZW4tZW5kZWQgc3VydmV5IGl0ZW1zIGluIG9ubGluZSBRdWFsdHJpY3MgcmVwb3J0cyBhbmQgeW91IGNhbiBldmVuIGFkZCB5b3VyIG93biBzdG9wIHdvcmRzLgoKVGhlIHt3b3JkY2xvdWRzMn0gcGFja2FnZSBpcyBwcmV0dHkgZGVhZCBzaW1wbGUgdG9vbCBmb3IgZ2VuZXJhdGluZyBIVE1MIGJhc2VkIGludGVyYWN0aXZlIHdvcmQgY2xvdWRzLiBCeSBkZWZhdWx0LCB3aGVuIHlvdSBwYXNzIGEgZGF0YSBmcmFtZSB0byB0aGUgYHdvcmRjbG91ZDIoKWAgZnVuY3Rpb24sIGl0IHdpbGwgbG9vayBmb3IgYSB3b3JkIGNvbHVtbiBhbmQgYSBjb2x1bW4gd2l0aCBmcmVxdWVuY2llcyBvciBjb3VudHMsIGkuZS4sIG91ciBjb2x1bW4gYG5gIHRoYXQgd2UgY3JlYXRlZCB3aXRoIHRoZSBgY291bnQoKWAgZnVuY3Rpb24uCgpMZXQncyBydW4gdGhlIGB3b3JkY2xvdWQyKClgIGZ1bmN0aW9uIG9uIG91ciBgY2Nzc190b3BfdG9rZW5zYCBkYXRhIGZyYW1lLgoKYGBge3J9Cgp3b3JkY2xvdWQyKGNjc3NfdG9wX3Rva2VucykKYGBgCgpBcyB5b3UgY2FuIHNlZSwgIm1hdGgiIGlzIGEgcHJldHR5IGNvbW1vbiB0b3BpYyB3aGVuIGRpc2N1c3NpbmcgdGhlIGNvbW1vbiBjb3JlIG9uIHR3aXR0ZXIgYnV0IHdvcmRzIGxpa2UgImNvcmUiIGFuZCAiY29tbW9uIiAtLSB3aGljaCB5b3UgY2FuIHNlZSBiZXR0ZXIgaWYgeW91IGNsaWNrIHRoZSAic2hvdyBpbiBhIG5ldyB3aW5kb3ciIGJ1dHRvbiBvciBydW4gdGhlIGNvZGUgaW4geW91IGNvbnNvbGUgLS0gYXJlIG5vdCB2ZXJ5IGhlbHBmdWwgc2luY2UgdGhvc2Ugd2VyZSBpbiBvdXIgc2VhcmNoIHRlcm1zIHdoZW4gcHVsbGluZyBkYXRhIGZyb20gVHdpdHRlci4KCkluIGZhY3QsIHNlYXJjaCB0ZXJtcyBsaWtlIHRoZXNlIHdlIG1pZ2h0IHdhbnQgdG8gZXhjbHVkZSBmcm9tIGEgZmluYWwgZGF0YSBwcm9kdWN0IHdlIHNoYXJlIHdpdGggd2l0aCBlZHVjYXRpb24gcGFydG5lcnMgb3IgaW4gYSBwdWJsaWNhdGlvbiBhbmQgaW5zdGVhZCBpbmNsdWRlIHRoZXNlIHRoZXNlIGluIGEgdGl0bGUgb3IgY2FwdGlvbi4KCmBgYHtyfQoKY2Nzc190b3BfdG9rZW5zICU+JQogIGZpbHRlcih3b3JkICE9ICJjb21tb24iICYgd29yZCAhPSAiY29yZSIpICU+JQogIHdvcmRjbG91ZDIoKQpgYGAKCiMjIyMgW1lvdXIgVHVybl17c3R5bGU9ImNvbG9yOiBncmVlbjsifcKg4qS1IHtzdHlsZT0iZm9udC1zdHlsZTogbm9ybWFsOyBmb250LXZhcmlhbnQtY2Fwczogbm9ybWFsOyBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyBvcnBoYW5zOiBhdXRvOyB0ZXh0LWFsaWduOiBzdGFydDsgdGV4dC1pbmRlbnQ6IDBweDsgdGV4dC10cmFuc2Zvcm06IG5vbmU7IHdoaXRlLXNwYWNlOiBub3JtYWw7IHdpZG93czogYXV0bzsgd29yZC1zcGFjaW5nOiAwcHg7IC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgyNiwgMjYsIDI2LCAwLjMpOyAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IGF1dG87IC13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6IDBweDsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyBjYXJldC1jb2xvcjogcmdiKDAsIDAsIDApOyBjb2xvcjogcmdiKDAsIDAsIDApOyJ9CgpJbiB0aGUgY29kZSBjaHVuayBiZWxvdywgZmlsdGVyLCBjb3VudCBhbmQgc2VsZWN0IHRoZSB0b3AgNTAgdG9rZW5zIHRvIGNyZWF0ZSBhIHdvcmQgY2xvdWQgZm9yIHRoZSBOR1NTIHR3ZWV0cy4gQSBnb2xkIHN0YXIgaWYgeW91IGNhbiBjYW4gZG8gaXQgd2l0aG91dCB1c2luZyB0aGUgYXNzaWdubWVudCBvcGVyYXRvciBvciBsb29raW5nIGF0IHRoZSBjb2RlIGFib3ZlIQoKYGBge3J9CnNzX3RpZHlfdHdlZXRzICU+JQogIGZpbHRlcihzdGFuZGFyZHMgPT0gIm5nc3MiKSAlPiUKICBjb3VudCh3b3JkLCBzb3J0ID0gVFJVRSkgJT4lCiAgdG9wX24oNTApICU+JQogIHdvcmRjbG91ZDIoKQpgYGAKCkFsc28sIHRha2UgYSBsb29rIGF0IHRoZSBoZWxwIGZpbGUgZm9yIGB3b3JkY2xvdWRzMmAgdG8gc2VlIGlmIHRoZXJlIG1pZ2h0IGJlIG90aGVyIHdheXMgeW91IGNvdWxkIGltcHJvdmUgdGhlIGFlc3RoZXRpY3Mgb2YgdGhpcyB2aXN1YWxpemF0aW9uLgoKIyMgNC4gTU9ERUwKCk5vdyB0aGF0IHdlIGhhdmUgb3VyIHR3ZWV0cyBuaWNlIGFuZCB0aWR5LCB3ZSdyZSBhbG1vc3QgcmVhZHkgdG8gYmVnaW4gZXhwbG9yaW5nIHB1YmxpYyBzZW50aW1lbnQgKGF0IGxlYXN0IGZvciB0aGUgcGFzdCB3ZWVrIGR1ZSB0byBUd2l0dGVyIEFQSSByYXRlIGxpbWl0cykgYXJvdW5kIHRoZSBDQ1NTIGFuZCBOR1NTIHN0YW5kYXJkcy4gRm9yIHRoaXMgcGFydCBvZiBvdXIgd29ya2Zsb3cgd2UgaW50cm9kdWNlIHR3byBuZXcgZnVuY3Rpb25zIGZyb20gdGhlIFtgdGlkeXRleHRgXShodHRwczovL2dpdGh1Yi5jb20vanVsaWFzaWxnZS90aWR5dGV4dCkgYW5kIGBkcGx5cmAgcGFja2FnZXMgcmVzcGVjdGl2ZWx5OgoKIyMjIyBIb3cgZG8geW91ICJtZWFzdXJlIiBzZW50aW1lbnQ/CgpTZW50aW1lbnQgYW5hbHlzaXMgdHJpZXMgdG8gZXZhbHVhdGUgd29yZHMgZm9yIHRoZWlyIGVtb3Rpb25hbCBhc3NvY2lhdGlvbi4gSW4gW1RleHQgTWluaW5nIHdpdGggUjogQSBUaWR5IEFwcHJvYWNoXShodHRwczovL3d3dy50aWR5dGV4dG1pbmluZy5jb20vc2VudGltZW50Lmh0bWwpLCBTaWxnZSBhYW5kIFJvYmluc29uIHBvaW50IG91dCB0aGF0LAoKPiBPbmUgd2F5IHRvIGFuYWx5emUgdGhlIHNlbnRpbWVudCBvZiBhIHRleHQgaXMgdG8gY29uc2lkZXIgdGhlIHRleHQgYXMgYSBjb21iaW5hdGlvbiBvZiBpdHMgaW5kaXZpZHVhbCB3b3JkcyBhbmQgdGhlIHNlbnRpbWVudCBjb250ZW50IG9mIHRoZSB3aG9sZSB0ZXh0IGFzIHRoZSBzdW0gb2YgdGhlIHNlbnRpbWVudCBjb250ZW50IG9mIHRoZSBpbmRpdmlkdWFsIHdvcmRzLgoKVGhpcyBpc24ndCB0aGUgb25seSB3YXkgdG8gYXBwcm9hY2ggc2VudGltZW50IGFuYWx5c2lzLCBidXQgaXQgaXMgYW4gZWFzaWVyIGVudHJ5IHBvaW50IGludG8gc2VudGltZW50IGFuYWx5c2lzIGFuZCB5b3UnbGwgZmluZCB0aGF0IGlzIGl0IG9mdGVuLXVzZWQgaW4gcHVibGljYXRpb25zIHRoYXQgdXRpbGl6ZSBzZW50aW1lbnQgYW5hbHlzaXMuCgpUaGUge3RpZHl0ZXh0fSBwYWNrYWdlIHByb3ZpZGVzIGFjY2VzcyB0byBzZXZlcmFsIHNlbnRpbWVudCAqKmxleGljb25zLCoqIFtzb21ldGltZXMgcmVmZXJyZWQgdG8gYXMgZGljdGlvbmFyaWVzXShodHRwczovL2NiYWlsLmdpdGh1Yi5pby90ZXh0YXNkYXRhL2RpY3Rpb25hcnktbWV0aG9kcy9ybWFya2Rvd24vRGljdGlvbmFyeS1CYXNlZF9UZXh0X0FuYWx5c2lzLmh0bWwpLCBiYXNlZCBvbiB1bmlncmFtcywgaS5lLiwgc2luZ2xlIHdvcmRzLiBUaGVzZSBsZXhpY29ucyBjb250YWluIG1hbnkgRW5nbGlzaCB3b3JkcyBhbmQgdGhlIHdvcmRzIGFyZSBhc3NpZ25lZCBzY29yZXMgZm9yIHBvc2l0aXZlL25lZ2F0aXZlIHNlbnRpbWVudCwgYW5kIGFsc28gcG9zc2libHkgZW1vdGlvbnMgbGlrZSBqb3ksIGFuZ2VyLCBzYWRuZXNzLCBhbmQgc28gZm9ydGguCgpUaGUgdGhyZWUgZ2VuZXJhbC1wdXJwb3NlIGxleGljb25zIHdlJ2xsIGZvY3VzIG9uIGFyZToKCi0gICBgQUZJTk5gIGFzc2lnbnMgd29yZHMgd2l0aCBhIHNjb3JlIHRoYXQgcnVucyBiZXR3ZWVuIC01IGFuZCA1LCB3aXRoIG5lZ2F0aXZlIHNjb3JlcyBpbmRpY2F0aW5nIG5lZ2F0aXZlIHNlbnRpbWVudCBhbmQgcG9zaXRpdmUgc2NvcmVzIGluZGljYXRpbmcgcG9zaXRpdmUgc2VudGltZW50LgoKLSAgIGBiaW5nYCBjYXRlZ29yaXplcyB3b3JkcyBpbiBhIGJpbmFyeSBmYXNoaW9uIGludG8gcG9zaXRpdmUgYW5kIG5lZ2F0aXZlIGNhdGVnb3JpZXMuCgotICAgYG5yY2DCoGNhdGVnb3JpemVzIHdvcmRzIGluIGEgYmluYXJ5IGZhc2hpb24gKCJ5ZXMiLyJubyIpIGludG8gY2F0ZWdvcmllcyBvZiBwb3NpdGl2ZSwgbmVnYXRpdmUsIGFuZ2VyLCBhbnRpY2lwYXRpb24sIGRpc2d1c3QsIGZlYXIsIGpveSwgc2FkbmVzcywgc3VycHJpc2UsIGFuZCB0cnVzdC4KCk5vdGUgdGhhdCAqKmlmIHRoaXMgaXMgeW91ciBmaXJzdCB0aW1lIHVzaW5nIHRoZSBBRklOTiBhbmQgTlJDIGxleGljb25zLCB5b3UgbWF5IHByb21wdGVkIHRvIGRvd25sb2FkIGJvdGgqKiBSZXNwb25kIHllcyB0byB0aGUgcHJvbXB0IGJ5IGVudGVyaW5nICIxIiBhbmQgdGhlIE5SQyBhbmQgQUZJTk4gbGV4aWNvbnMgd2lsbCBkb3dubG9hZC4gWW91J2xsIG9ubHkgaGF2ZSB0byBkbyB0aGlzIHRoZSBmaXJzdCB0aW1lIHlvdSB1c2UgdGhlIE5SQyBsZXhpY29uLgoKTGV0J3MgdGFrZSBhIHF1aWNrIGxvb2sgYXQgZWFjaCBvZiB0aGVzZSBsZXhpY29ucyB1c2luZyB0aGUgYGdldF9zZW50aW1lbnRzKClgIGZ1bmN0aW9uIGFuZCBhc3NpZ24gdGhlbSB0byB0aGVpciByZXNwZWN0aXZlIG5hbWVzIGZvciBsYXRlciB1c2U6CgpgYGB7cn0KYWZpbm4gPC0gZ2V0X3NlbnRpbWVudHMoImFmaW5uIikKCmFmaW5uCmBgYAoKYGBge3J9CmJpbmcgPC0gZ2V0X3NlbnRpbWVudHMoImJpbmciKQoKYmluZwpgYGAKCmBgYHtyfQpucmMgPC0gZ2V0X3NlbnRpbWVudHMoIm5yYyIpCgpucmMKYGBgCgpBbmQganVzdCBvdXQgb2YgY3VyaW9zaXR5LCBsZXQncyB0YWtlIGEgbG9vayBhdCB0aGUgYGxvdWdocmFuYCBsZXhpY29uIGFzIHdlbGw6CgpgYGB7cn0KbG91Z2hyYW4gPC0gZ2V0X3NlbnRpbWVudHMoImxvdWdocmFuIikKCmxvdWdocmFuCmBgYAoKIyMjIyMg4pyFIENvbXByZWhlbnNpb24gQ2hlY2sKCjEuICBIb3cgd2VyZSB0aGVzZSBzZW50aW1lbnQgbGV4aWNvbnMgcHV0IHRvZ2V0aGVyIGFuZCB2YWxpZGF0ZWQ/IEhpbnQ6IHRha2UgYSBsb29rIGF0IENoYXB0ZXIgMiBmcm9tIFRleHQgTWluaW5nIHdpdGggUi4KCiAgICAtICAgCgoyLiAgV2h5IHNob3VsZCB3ZSBiZSBjYXV0aW91cyB3aGVuIHVzaW5nIGFuZCBpbnRlcnByZXRpbmcgdGhlbT8KCiAgICAtICAgCgojIyMjIENvbWUgdG8gdGhlIERhcmsgU2lkZQoKIVtdKGltZy9kYXJrLXNpZGUuanBlZyl7d2lkdGg9IjgwJSJ9CgpBcyBub3RlZCBpbiB0aGUgUEVSUEFSRSBzZWN0aW9uLCB0aGUge3ZhZGVyfSBwYWNrYWdlIGlzIGZvciB0aGUgVmFsZW5jZSBBd2FyZSBEaWN0aW9uYXJ5IGZvciBzRW50aW1lbnQgUmVhc29uaW5nIChWQURFUiksIGEgcnVsZS1iYXNlZCBtb2RlbCBmb3IgZ2VuZXJhbCBzZW50aW1lbnQgYW5hbHlzaXMgb2Ygc29jaWFsIG1lZGlhIHRleHQgYW5kIHNwZWNpZmljYWxseSBhdHR1bmVkIHRvIG1lYXN1cmluZyBzZW50aW1lbnQgaW4gbWljcm9ibG9nLWxpa2UgY29udGV4dHMgc3VjaCBhcyBUd2l0dGVyLgoKVGhlIFZBREVSIGFzc2lnbnMgYSBudW1iZXIgb2YgZGlmZmVyZW50IHNlbnRpbWVudCBtZWFzdXJlcyBiYXNlZCBvbiB0aGUgY29udGV4dCBvZiB0aGUgZW50aXJlIHNvY2lhbC1tZWRpYSBwb3N0IG9yIGluIG91ciBjYXNlIGEgdHdlZXQuIFVsdGltYXRlbHksIGhvd2V2ZXIsIHRoZXNlIG1lYXN1cmVzIGFyZSBiYXNlZCBvbiBhIHNlbnRpbWVudCBsZXhpY29uIHNpbWlsYXIgdG8gdGhvc2UgeW91IGp1c3Qgc2F3IGFib3ZlLiBPbmUgYmVuZWZpdCBvZiB1c2luZyBWQURFUiByYXRoZXIgdGhhbiB0aGUgYXBwcm9hY2hlcyBkZXNjcmliZWQgYnkgU2lsZ2UgYW5kIFJvYmluc29uIGlzIHRoYXQgd2UgdXNlIGl0IHdpdGggb3VyIHR3ZWV0cyBpbiB0aGVpciBvcmlnaW5hbCBmb3JtYXQgYW5kIHNraXAgdGhlIHRleHQgcHJlcHJvY2Vzc2luZyBzdGVwcyBkZW1vbnN0cmF0ZWQgYWJvdmUuCgpPbmUgZHJhd2JhY2sgdG8gVkFERVIgaXMgdGhhdCBpdCBjYW4gdGFrZSBhIGxpdHRsZSB3aGlsZSB0byBydW4gc2luY2UgaXQncyBjb21wdXRhdGlvbmFsbHkgaW50ZW5zaXZlLiBJbnN0ZWFkIG9mIGFuYWx5emluZyB0ZW5zIG9mIHRob3VzYW5kcyBvZiB0d2VldHMsIGxldCdzIHJlYWQgaW4gb3VyIG9yaWdpbmFsIGBjY3NzLXR3ZWV0cy5jc3ZgIGFuZCB0YWtlIGluc3RlYWQganVzdCBhIHNhbXBsZSBvZiA1MDAgInVudGlkdSIgQ0NTUyB0d2VldHMgdXNpbmcgdGhlIGBzYW1wbGVfbigpYCBmdW5jdGlvbjoKCmBgYHtyfQpjY3NzX3NhbXBsZSA8LSByZWFkX2NzdihoZXJlKCJ1bml0LTMiLCAiZGF0YSIsICJjY3NzLXR3ZWV0cy5jc3YiKSkgJT4lCiAgc2FtcGxlX24oNTAwKQoKY2Nzc19zYW1wbGUKYGBgCgpOb3RlIGFib3ZlIHRoYXQgd2UgcGFzc2VkIG91ciBgcmVhZF9jc3YoKWAgb3V0cHV0IGRpcmVjdGx5IHRvIG91ciBgc2FtcGxlKClgIGZ1bmN0aW9uIHJhdGhlciB0aGFuIHNhdmluZyBhIG5ldyBkYXRhIGZyYW1lIG9iamVjdCwgcGFzc2luZyB0aGF0IHRvIGBzYW1wbGVfbigpYCwgYW5kIHNhdmluZyBhcyBhbm90aGVyIGRhdGEgZnJhbWUgb2JqZWN0LiBUaGUgcG93ZXIgb2YgdGhlIGAlPiVgIHBpcGUhCgpPbiB0byB0aGUgRGFyayBTaWRlLiBUaGUge3ZhZGVyfSBwYWNrYWdlIGJhc2ljYWxseSBoYXMganVzdCBvbmUgZnVuY3Rpb24sIGB2YWRlcl9kZigpYCB0aGF0IGRvZXMgb25lIHRoaW5nIGFuZCBleHBlY3RzIGp1c3Qgb25lIGNvbHVtbiBmcm9tIG9uZSBmcmFtZS4gSGUncyB2ZXJ5IHNpbmdsZSBtaW5kZWQhIExldCdzIGdpdmUgVkFERVIgb3VyIGBjY3NzX3NhbXBsZWAgZGF0YSBmcmFtZSBhbmQgaW5jbHVkZSB0aGUgYCRgIG9wZXJhdG9yIHRvIGluY2x1ZGUgb25seSB0aGUgYHRleHRgIGNvbHVtbiBjb250YWluaW5nIG91ciB0d2VldHMuCgpgYGB7cn0KdmFkZXJfY2NzcyA8LSB2YWRlcl9kZihjY3NzX3NhbXBsZSR0ZXh0KQoKdmFkZXJfY2NzcwpgYGAKClRha2UgYSBsb29rIGF0IGB2YWRlcl9zdW1tYXJ5YCBkYXRhIGZyYW1lIHVzaW5nIHRoZSBgVmlldygpYCBmdW5jdGlvbiBpbiB0aGUgY29uc29sZSBhbmQgc29ydCBieSBtb3N0IHBvc2l0aXZlIGFuZCBuZWdhdGl2ZSB0d2VldHMuCgpEb2VzIGl0IGdlbmVyYWxseSBzZWVtIGFjY3VyYXRlbHkgaWRlbnRpZnkgcG9zaXRpdmUgYW5kIG5lZ2F0aXZlIHR3ZWV0cz8gQ291bGQgeW91IGZpbmQgYW55IHRoYXQgeW91IHRoaW5rIHdlcmUgbWlzbGFiZWxlZD8KCi0gICBZT1VSIFJFU1BPTlNFIEhFUkUKCkh1dHRvLCBDLiAmIEdpbGJlcnQsIEUuICgyMDE0KSBwcm92aWRlIGFuIGV4Y2VsbGVudCBzdW1tYXJ5IG9mIHRoZSBWQURFUiBwYWNrYWdlIG9uIHRoZWlyIFtHaXRIdWIgcmVwb3NpdG9yeV0oc2NvcmVzKSBhbmQgSSd2ZSBjb3BpZWQgYW5kIGV4cGxhbmF0aW9uIG9mIHRoZSBzY29yZXMgYmVsb3c6CgotICAgVGhlwqBgY29tcG91bmRgwqBzY29yZSBpcyBjb21wdXRlZCBieSBzdW1taW5nIHRoZSB2YWxlbmNlIHNjb3JlcyBvZiBlYWNoIHdvcmQgaW4gdGhlIGxleGljb24sIGFkanVzdGVkIGFjY29yZGluZyB0byB0aGUgcnVsZXMsIGFuZCB0aGVuIG5vcm1hbGl6ZWQgdG8gYmUgYmV0d2VlbiAtMSAobW9zdCBleHRyZW1lIG5lZ2F0aXZlKSBhbmQgKzEgKG1vc3QgZXh0cmVtZSBwb3NpdGl2ZSkuIFRoaXMgaXMgdGhlIG1vc3QgdXNlZnVsIG1ldHJpYyBpZiB5b3Ugd2FudCBhIHNpbmdsZSB1bmlkaW1lbnNpb25hbCBtZWFzdXJlIG9mIHNlbnRpbWVudCBmb3IgYSBnaXZlbiBzZW50ZW5jZS4gQ2FsbGluZyBpdCBhICdub3JtYWxpemVkLCB3ZWlnaHRlZCBjb21wb3NpdGUgc2NvcmUnIGlzIGFjY3VyYXRlLgoKKipOT1RFOioqwqBUaGXCoGBjb21wb3VuZGDCoHNjb3JlIGlzIHRoZSBvbmUgbW9zdCBjb21tb25seSB1c2VkIGZvciBzZW50aW1lbnQgYW5hbHlzaXMgYnkgbW9zdCByZXNlYXJjaGVycywgaW5jbHVkaW5nIHRoZSBhdXRob3JzLgoKTGV0J3MgdGFrZSBhIGxvb2sgYXQgdGhlIGF2ZXJhZ2UgY29tcG91bmQgc2NvcmUgZm9yIG91ciBDQ1NTIHNhbXBsZSBvZiB0d2VldHM6CgpgYGB7cn0KbWVhbih2YWRlcl9jY3NzJGNvbXBvdW5kKQpgYGAKCk92ZXJhbGwsIGRvZXMgeW91ciBDQ1NTIHR3ZWV0cyBzYW1wbGUgbGVhbiBzbGlnaHRseSBuZWdhdGl2ZSBvciBwb3NpdGl2ZT8gSXMgdGhpcyB3aGF0IHlvdSBleHBlY3RlZD8KCldoYXQgaWYgd2Ugd2FudGVkIHRvIGNvbXBhcmUgdGhlc2UgcmVzdWx0cyBtb3JlIGVhc2lseSB0byBvdXIgb3RoZXIgc2VudGltZW50IGxleGljb25zIGp1c3QgdG8gY2hlY2sgaWYgcmVzdWx0IGFyZSBmYWlybHkgY29uc2lzdGVudD8KClRoZSBhdXRob3IncyBub3RlIHRoYXQgaXQgaXMgYWxzbyB1c2VmdWwgZm9yIHJlc2VhcmNoZXJzIHdobyB3b3VsZCBsaWtlIHRvIHNldCBzdGFuZGFyZGl6ZWQgdGhyZXNob2xkcyBmb3IgY2xhc3NpZnlpbmcgc2VudGVuY2VzIGFzIGVpdGhlciBwb3NpdGl2ZSwgbmV1dHJhbCwgb3IgbmVnYXRpdmUuIFR5cGljYWwgdGhyZXNob2xkIHZhbHVlcyBhcmU6CgotICAgKipwb3NpdGl2ZSBzZW50aW1lbnQqKjrCoGBjb21wb3VuZGDCoHNjb3JlIFw+PSAwLjA1CgotICAgKipuZXV0cmFsIHNlbnRpbWVudCoqOiAoYGNvbXBvdW5kYMKgc2NvcmUgXD4gLTAuMDUpIGFuZCAoYGNvbXBvdW5kYMKgc2NvcmUgXDwgMC4wNSkKCi0gICAqKm5lZ2F0aXZlIHNlbnRpbWVudCoqOsKgYGNvbXBvdW5kYMKgc2NvcmUgXDw9IC0wLjA1CgpMZXQncyBnaXZlIHRoYXQgYSB0cnkgYW5kIHNlZSBob3cgdGhpbmdzIHNoYWtlIG91dDoKCmBgYHtyfQp2YWRlcl9jY3NzX3N1bW1hcnkgPC0gdmFkZXJfY2NzcyAlPiUgCiAgbXV0YXRlKHNlbnRpbWVudCA9IGlmZWxzZShjb21wb3VuZCA+PSAwLjA1LCAicG9zaXRpdmUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKGNvbXBvdW5kIDw9IC0wLjA1LCAibmVnYXRpdmUiLCAibmV1dHJhbCIpKSkgJT4lCiAgY291bnQoc2VudGltZW50LCBzb3J0ID0gVFJVRSkgJT4lIAogIHNwcmVhZChzZW50aW1lbnQsIG4pICU+JSAKICByZWxvY2F0ZShwb3NpdGl2ZSkgJT4lCiAgbXV0YXRlKHJhdGlvID0gbmVnYXRpdmUvcG9zaXRpdmUpCgp2YWRlcl9jY3NzX3N1bW1hcnkKYGBgCgpOb3QgcXVpdGUgYXMgYmxlYWsgYXMgd2UgbWlnaHQgaGF2ZSBleHBlY3RlZCBhY2NvcmRpbmcgdG8gVkFERVIhIEJ1dCB0aGVuIGFnYWluLCBWQURFUiBicmluZ3MgYW4gZW50aXJlbHkgZGlmZmVyZW50IHBlcnNwZWN0aXZlIGNvbWluZyBmcm9tIHRoZSBkYXJrIHNpZGUKCkluIGEgc2VwYXJhdGUgUiBzY3JpcHQgZmlsZSwgdHJ5IHVzaW5nIFZBREVSIHRvIHBlcmZvcm0gYSBzZW50aW1lbnQgYW5hbHlzaXMgb2YgdGhlIE5HU1MgdHdlZXRzIGFuZCBzZWUgaG93IHRoZXkgY29tcGFyZS4gUG9zdCB5b3VyIHdvcmtpbmcgY29kZSBpbiB0aGUgY2h1bmsgYmVsb3cuCgpgYGB7cn0Kbmdzc19zYW1wbGUgPC0gcmVhZF9jc3YoaGVyZSgidW5pdC0zIiwgImRhdGEiLCAibmdzcy10d2VldHMuY3N2IikpICU+JQogIHNhbXBsZV9uKDUwMCkKCnZhZGVyX25nc3MgPC0gdmFkZXJfZGYobmdzc19zYW1wbGUkdGV4dCkKCnZhZGVyX25nc3Nfc3VtbWFyeSA8LSB2YWRlcl9uZ3NzICU+JSAKICBtdXRhdGUoc2VudGltZW50ID0gaWZlbHNlKGNvbXBvdW5kID49IDAuMDUsICJwb3NpdGl2ZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoY29tcG91bmQgPD0gLTAuMDUsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJuZWdhdGl2ZSIsICJuZXV0cmFsIikpKSAlPiUKICBjb3VudChzZW50aW1lbnQsIHNvcnQgPSBUUlVFKSAlPiUgCiAgc3ByZWFkKHNlbnRpbWVudCwgbikgJT4lIAogIHJlbG9jYXRlKHBvc2l0aXZlKSAlPiUKICBtdXRhdGUocmF0aW8gPSBuZWdhdGl2ZS9wb3NpdGl2ZSkKCnZhZGVyX25nc3Nfc3VtbWFyeQpgYGAKCkhvdyBkbyBvdXIgcmVzdWx0cyBjb21wYXJlIHRvIHRoZSBDU1NTIHNhbXBsZSBvZiB0d2VldHM/CgotICAgCgojIyA1LiBDT01NVU5JQ0FURQoKSW4gdGhpcyBjYXNlIHN0dWR5LCB3ZSBmb2N1c2VkIG9uIHRoZSBsaXRlcmF0dXJlIGd1aWRpbmcgb3VyIGFuYWx5c2lzOyB3cmFuZ2xpbmcgb3VyIGRhdGEgaW50byBhIG9uZS10b2tlbi1wZXItcm93IHRpZHkgdGV4dCBmb3JtYXQ7IGFuZCB1c2luZyBzaW1wbGUgd29yZCBjb3VudHMgYW5kIHdvcmQgY2xvdWRzIHRvIGNvbXBhcmUgY29tbW9uIHdvcmRzIHVzZWQgaW4gdHdlZXRzIGFib3V0IHRoZSBOR1NTIGFuZCBDQ1NTIGN1cnJpY3VsdW0gc3RhbmRhcmRzLiBCZWxvdywgYWRkIGEgZmV3IG5vdGVzIGluIHJlc3BvbnNlIHRvIHRoZSBmb2xsb3dpbmcgcHJvbXB0czoKCjEuICBPbmUgdGhpbmcgSSB0b29rIGF3YXkgZnJvbSB0aGlzIGxlYXJuaW5nIGxhYjoKCiAgICAtICAgCgoyLiAgT25lIHRoaW5nIEkgd2FudCB0byBsZWFybiBtb3JlIGFib3V0OgoKICAgIC0gICAKCkNvbmdyYXR1bGF0aW9ucyAtIHlvdSd2ZSBjb21wbGV0ZWQgeW91ciBmaXJzdCB0ZXh0IG1pbmluZyBjYXNlIHN0dWR5ISBUbyBjb21wbGV0ZSB5b3VyIHdvcmssIHlvdSBjYW4gY2xpY2sgdGhlIGRyb3AgZG93biBhcnJvdyBhdCB0aGUgdG9wIG9mIHRoZSBmaWxlLCB0aGVuIHNlbGVjdCAiS25pdCB0b3AgSFRNTCIuIFRoaXMgd2lsbCBjcmVhdGUgYSByZXBvcnQgaW4geW91ciBGaWxlcyBwYW5lIHRoYXQgc2VydmVzIGFzIGEgcmVjb3JkIG9mIHlvdXIgY29kZSBhbmQgaXRzIG91dHB1dCB5b3UgY2FuIG9wZW4gb3Igc2hhcmUuCgpJZiB5b3Ugd2FudGVkLCB5b3UgY291bGQgc2F2ZSB0aGUgcHJvY2Vzc2VkIGRhdGEgc2V0IHRvIHlvdXIgZGF0YSBmb2xkZXIuIFRoZSBgd3JpdGVfY3N2KClgIGZ1bmN0aW9uIGlzIHVzZWZ1bCBmb3IgdGhpcy4gVGhlIGZvbGxvd2luZyBjb2RlIGlzIHNldCB0byBub3QgcnVuLCBhcyB3ZSB3YW50ZWQgdG8gZW5zdXJlIHRoYXQgZXZlcnlvbmUgaGFkIHRoZSBkYXRhIHNldCBuZWVkZWQgdG8gYmVnaW4gdGhlIHNlY29uZCBsZWFybmluZyBsYWIsIGJ1dCBpZiB5b3UncmUgY29uZmlkZW50IGluIHlvdXIgcHJlcGFyZWQgZGF0YSwgeW91IGNhbiBzYXZlIGl0IHdpdGggdGhlIGZvbGxvd2luZzoKCmBgYHtyLCBldmFsID0gRkFMU0V9CndyaXRlX2NzdigpCmBgYAoKIyMgRXh0cmEgQ3JlZGl0IChPcHRpb25hbCkKClVzaW5nIHlvdXIgb3duIHRleHQgZGF0YSBvciBkYXRhIHRoYXQgeW91IHlvdSBwdWxsZWQgZnJvbSBUd2l0dGVyIGFib3ZlLCB0cnkgdGlkeWluZyB5b3VyIGRhdGEgaW50byBhIHRpZHkgdGV4dCBmb3JtYXQsIGV4YW1pbmluZyB0aGUgdG9wIHdvcmRzIGluIHlvdXIgZGF0YXNldCwgYW5kIGNvbmR1Y3Rpbmcgc2VudGltZW50IGFuYWx5c2lzIHdpdGggVkFERVIuCgpgYGB7cn0KCmBgYAoKSWYgeW91J2QgbGlrZSB0byB1c2UgdGhlIGRhdGEgd2UndmUgYmVlbiB3b3JraW5nIHdpdGggZm9yIGV4dHJhIGNyZWRpdCwgbGV0J3MgdGFrZSBhIHF1aWNrIGxvb2sgYXQgdGV4dCBhbmFseXNpcyB1c2luZyAqKmJpZ3JhbXMqKiwgb3IgdG9rZW5zIGNvbnNpc3Rpbmcgb2YgdHdvIHdvcmRzLgoKIyMjIEJpZ3JhbXMKClNvIGZhciBpbiB0aGlzIGxhYiwgd2Ugc3BlY2lmaWVkIHRva2VucyBhcyBpbmRpdmlkdWFsIHdvcmRzLCBidXQgbWFueSBpbnRlcmVzdGluZyB0ZXh0IGFuYWx5c2VzIGFyZSBiYXNlZCBvbiB0aGUgcmVsYXRpb25zaGlwcyBiZXR3ZWVuIHdvcmRzLCB3aGljaCB3b3JkcyB0ZW5kIHRvIGZvbGxvdyBvdGhlcnMgaW1tZWRpYXRlbHksIG9yIHdvcmRzIHRoYXQgdGVuZCB0byBjby1vY2N1ciB3aXRoaW4gdGhlIHNhbWUgZG9jdW1lbnRzLgoKV2UgY2FuIGFsc28gdXNlIHRoZSBgdW5uZXN0X3Rva2VucygpYCBmdW5jdGlvbiB0byB0b2tlbml6ZSBvdXIgdHdlZXRzIGludG8gY29uc2VjdXRpdmUgc2VxdWVuY2VzIG9mIHdvcmRzLCBjYWxsZWQgKipuLWdyYW1zKiouIEJ5IHNlZWluZyBob3cgb2Z0ZW4gd29yZCBYIGlzIGZvbGxvd2VkIGJ5IHdvcmQgWSwgd2UgY291bGQgdGhlbiBidWlsZCBhIG1vZGVsIG9mIHRoZSByZWxhdGlvbnNoaXBzIGJldHdlZW4gdGhlbS4KClRvIHNwZWNpZnkgb3VyIHRva2VucyBhcyBiaWdyYW1zLCBXZSBkbyBhZGQgYHRva2VuID0gIm5ncmFtcyJgIHRvIHRoZSBgdW5uZXN0X3Rva2VucygpYCBmdW5jdGlvbiBhbmQgc2V0dGluZyBgbmAgdG8gdGhlIG51bWJlciBvZiB3b3JkcyBpbiBlYWNoIG4tZ3JhbS4gTGV0J3Mgc2V0IGBuYCB0byAyLCBzbyB3ZSBjYW4gZXhhbWluZSBwYWlycyBvZiB0d28gY29uc2VjdXRpdmUgd29yZHMsIG9mdGVuIGNhbGxlZCAiYmlncmFtcyI6CgpgYGB7ciBjY3NzLWJpZ3JhbXN9Cm5nc3NfYmlncmFtcyA8LSBuZ3NzX3R3ZWV0cyAlPiUgCiAgdW5uZXN0X3Rva2VucyhiaWdyYW0sIAogICAgICAgICAgICAgICAgdGV4dCwgCiAgICAgICAgICAgICAgICB0b2tlbiA9ICJuZ3JhbXMiLCAKICAgICAgICAgICAgICAgIG4gPSAyKQpgYGAKCkJlZm9yZSB3ZSBtb3ZlIGFueSBmdXJ0aGVyIGxldCdzIHRha2UgYSBxdWljayBsb29rIGF0IHRoZSBtb3N0IGNvbW1vbiBiaWdyYW1zIGluIG91ciBOR1NTIHR3ZWV0czoKCmBgYHtyfQpuZ3NzX2JpZ3JhbXMgJT4lIAogIGNvdW50KGJpZ3JhbSwgc29ydCA9IFRSVUUpCmBgYAoKQXMgd2Ugc2F3IGFib3ZlLCBhIGxvdCBvZiB0aGUgbW9zdCBjb21tb24gYmlncmFtcyBhcmUgcGFpcnMgb2YgY29tbW9uICh1bmludGVyZXN0aW5nKSB3b3JkcyBhcyB3ZWxsLiBEZWFsaW5nIHdpdGggdGhlc2UgaXMgYSBsaXR0bGUgbGVzcyBzdHJhaWdodGZvcndhcmQgYW5kIHdlJ2xsIG5lZWQgdG8gdXNlIHRoZSBgc2VwYXJhdGUoKWAgZnVuY3Rpb24gZnJvbSB0aGUgYHRpZHlyYCBwYWNrYWdlLCB3aGljaCBzcGxpdHMgYSBjb2x1bW4gaW50byBtdWx0aXBsZSBiYXNlZCBvbiBhIGRlbGltaXRlci4gVGhpcyBsZXRzIHVzIHNlcGFyYXRlIGl0IGludG8gdHdvIGNvbHVtbnMsICJ3b3JkMSIgYW5kICJ3b3JkMiIsIGF0IHdoaWNoIHBvaW50IHdlIGNhbiByZW1vdmUgY2FzZXMgd2hlcmUgZWl0aGVyIGlzIGEgc3RvcC13b3JkLgoKYGBge3Igc3RvcC1iaWdyYW1zfQpsaWJyYXJ5KHRpZHlyKQpiaWdyYW1zX3NlcGFyYXRlZCA8LSBuZ3NzX2JpZ3JhbXMgJT4lCiAgc2VwYXJhdGUoYmlncmFtLCBjKCJ3b3JkMSIsICJ3b3JkMiIpLCBzZXAgPSAiICIpCgpiaWdyYW1zX2ZpbHRlcmVkIDwtIGJpZ3JhbXNfc2VwYXJhdGVkICU+JQogIGZpbHRlcighd29yZDEgJWluJSBzdG9wX3dvcmRzJHdvcmQpICU+JQogIGZpbHRlcighd29yZDIgJWluJSBzdG9wX3dvcmRzJHdvcmQpCgp0aWR5X2JpZ3JhbXMgPC0gYmlncmFtc19maWx0ZXJlZCAlPiUKICB1bml0ZShiaWdyYW0sIHdvcmQxLCB3b3JkMiwgc2VwID0gIiAiKQpgYGAKCkxldCdzIHRha2UgYSBsb29rIGF0IG91ciBiaWdyYW0gY291bnRzIG5vdzoKCmBgYHtyfQp0aWR5X2JpZ3JhbXMgJT4lIAogIGNvdW50KGJpZ3JhbSwgc29ydCA9IFRSVUUpCmBgYAoKQmV0dGVyLCBidXQgdGhlcmUgYXJlIHN0aWxsIG1hbnkgdG9rZW5zIG5vdCBlc3BlY2lhbGx5IHVzZWZ1bCBmb3IgYW5hbHlzaXMuCgpMZXQncyBtYWtlIGEgY3VzdG9tIGN1c3RvbSBzdG9wIHdvcmQgZGljdGlvbmFyeSBmb3IgYmlncmFtcyBqdXN0IGxpa2Ugd2UgZGlkIGZvciBvdXIgdW5pZ3JhbXMuIEEgbGlzdCBpcyBzdGFydGVkIGZvciB5b3UgYmVsb3csIGJ1dCB5b3UgbGlrZWx5IHdhbnQgdG8gZXhwYW5kIG91ciBsaXN0IG9mZiBzdG9wIHdvcmRzOgoKYGBge3J9Cm15X3dvcmRzIDwtIGMoImh0dHBzIiwgInQuY28iKQpgYGAKCk5vdyBsZXQncyBzZXBhcmF0ZSwgZmlsdGVyLCBhbmQgdW5pdGUgYWdhaW46CgpgYGB7cn0KdGlkeV9iaWdyYW1zIDwtIGJpZ3JhbXNfc2VwYXJhdGVkICU+JQogIGZpbHRlcighd29yZDEgJWluJSBzdG9wX3dvcmRzJHdvcmQpICU+JQogIGZpbHRlcighd29yZDIgJWluJSBzdG9wX3dvcmRzJHdvcmQpICU+JQogIGZpbHRlcighd29yZDEgJWluJSBteV93b3JkcykgJT4lCiAgZmlsdGVyKCF3b3JkMiAlaW4lIG15X3dvcmRzKSAlPiUKICB1bml0ZShiaWdyYW0sIHdvcmQxLCB3b3JkMiwgc2VwID0gIiAiKQpgYGAKCk5vdGUgdGhhdCBzaW5jZSBgbXlfd29yZHNgIGlzIGp1c3QgYSB2ZWN0b3Igb2Ygd29yZHMgYW5kIG5vdCBhIGRhdGEgZnJhbWUgbGlrZSBgc3RvcF93b3Jkc2AsIHdlIGRvIG5vdCBuZWVkIHRvIHNlbGVjdCB0aGUgYHdvcmRgIGNvbHVtbiB1c2luZyB0aGUgYCRgIG9wZXJhdG9yLgoKTGV0J3MgdGFrZSBhbm90aGVyIHF1aWNrIGNvdW50IG9mIG91ciBiaWdyYW1zOgoKYGBge3J9CnRpZHlfYmlncmFtcyAlPiUgCiAgY291bnQoYmlncmFtLCBzb3J0ID0gVFJVRSkKYGBgCgojIyMjIFtZb3VyIFR1cm5de3N0eWxlPSJjb2xvcjogZ3JlZW47In3CoOKktSB7c3R5bGU9ImZvbnQtc3R5bGU6IG5vcm1hbDsgZm9udC12YXJpYW50LWNhcHM6IG5vcm1hbDsgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgb3JwaGFuczogYXV0bzsgdGV4dC1hbGlnbjogc3RhcnQ7IHRleHQtaW5kZW50OiAwcHg7IHRleHQtdHJhbnNmb3JtOiBub25lOyB3aGl0ZS1zcGFjZTogbm9ybWFsOyB3aWRvd3M6IGF1dG87IHdvcmQtc3BhY2luZzogMHB4OyAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMjYsIDI2LCAyNiwgMC4zKTsgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiBhdXRvOyAtd2Via2l0LXRleHQtc3Ryb2tlLXdpZHRoOiAwcHg7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgY2FyZXQtY29sb3I6IHJnYigwLCAwLCAwKTsgY29sb3I6IHJnYigwLCAwLCAwKTsifQoKVXNlIHRoZSBjb2RlIGNodW5rIGJlbG93IHRvIHRpZHkgYW5kIGNvdW50IG91ciBiaWdyYW1zIGZvciB0aGUgQ0NTUyB0d2VldHM6CgpgYGB7cn0KY2Nzc19iaWdyYW1zIDwtIGNjc3NfdHdlZXRzICU+JSAKICB1bm5lc3RfdG9rZW5zKGJpZ3JhbSwgCiAgICAgICAgICAgICAgICB0ZXh0LCAKICAgICAgICAgICAgICAgIHRva2VuID0gIm5ncmFtcyIsIAogICAgICAgICAgICAgICAgbiA9IDIpICU+JQogIHNlcGFyYXRlKGJpZ3JhbSwgYygid29yZDEiLCAid29yZDIiKSwgc2VwID0gIiAiKSAlPiUKICBmaWx0ZXIoIXdvcmQxICVpbiUgc3RvcF93b3JkcyR3b3JkKSAlPiUKICBmaWx0ZXIoIXdvcmQyICVpbiUgc3RvcF93b3JkcyR3b3JkKSAlPiUKICBmaWx0ZXIoIXdvcmQxICVpbiUgbXlfd29yZHMpICU+JQogIGZpbHRlcighd29yZDIgJWluJSBteV93b3JkcykgJT4lCiAgdW5pdGUoYmlncmFtLCB3b3JkMSwgd29yZDIsIHNlcCA9ICIgIikKCmNjc3NfYmlncmFtcyAlPiUgCiAgY291bnQoYmlncmFtLCBzb3J0ID0gVFJVRSkKYGBgCgpXaGF0IGFkZGl0aW9uYWwgaW5zaWdodCwgaWYgYW55LCBkaWQgbG9va2luZyBhdCBiaWdyYW1zIGJyaW5nIHRvIG91dCBhbmFseXNpcz8KCi0gICBZT1VSIFJFU1BPTlNFIEhFUkUKCiMjIyBSZWZlcmVuY2VzCgpOb3RlOiBDaXRhdGlvbnMgZW1iZWRkZWQgaW4gUiBNYXJrZG93biB3aWxsIG9ubHkgc2hvdyB1cG9uIGtuaXR0aW5nLgo=